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 10 years ago.
I'm a little bit confused about these two terms, can somebody explain what is the difference, for example Eclipse is an example of IDE, there I can edit, debug, compile my program, but the same things I can do with SDK, am I wrong? thanks in advance
An SDK usually only includes the necessary building blocks for developing applications. This includes frameworks, libraries, header files, whatever as well as compilers, debuggers, and various other tools, such as profilers, etc.
An IDE simply makes access to those more user-friendly (or integrated, hence the name), if you will. However, Eclipse for example comes with its own compiler as well.
In any case, an IDE allows you to develop applications from a single environment, be that Emacs, Visual Studio or Eclipse. If you only have an SDK you'd write programs with a text editor, compile them with the compiler (instead of hitting F\d+), debug with the debugger which often has an awkward text interface, &c.
SDK = Software Development Kit... the tools that do the tasks you mentioned above. IDE = Integrated Development Environment... A GUI for accessing the SDK tools and then some (features differ).
A SDK has DLL libraries, compilers, and other tools to compile source code into an executable program (or intermediate byte code to run on JVM or .NET). You can write the source code in any text editor and build your program from all your text files using an SDK.
An IDE integrates all those SDK features, including the compiler, into GUI menus to make it easier to access all those features and easier to develop software. It creates build scripts for you to make managing your project easier and much more. My favorite, it allows you to debug by stepping through code line by line.
Visual Studio, Eclipse, NetBeans are examples of IDEs. .NET Framework 4.0 and Swing Application Framework are examples of SDKs.
Related
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
I have purchased a Tiva C series LaunchPad TM4C123G Evaluation Kit from Texas Instruments. This kit contains a small PCB with an ARM Cortex M4F microcontroller. Now I want to start writing software for this microcontroller. I am used to program AVR 8-bit microcontrollers using AVR Studio on Windows. I heard that it shoud be easy to program ARM-based microcontrollers on Linux, and since Linux is my main platform, I would like a simple IDE that will work more or less like I am used to from AVR.
For several days I have been searching for a good IDE and tools that will do the job. To my surprise, only a few will run on Linux, and none is open source or freeware. Can this really be true? I do not want to spend several hundred dollars just to try out some programming for the Cortex M4F. Nor do I want to learn one IDE now and then another later when I found out it is not good enough or too expensive. I am used to Linux and the open source way of doing things and I am very shocked that nobody seem to be doing any serious embedded ARM programming with open source tools on Linux. Please correct me if I am wrong.
I have no plans running Linux on the Cortex M4F - I just want to program it like a normal microcontroller.
Texas Instruments recommends one of the following tool chains on the back cover of the evaluation kit:
Code Composer Studio IDE: full functional board locked
Keil: 32KB address limited
IAR: 32KB address limited
Mentor Embedded Sourcery CodeBench: 30-day full functional
I have also been recommended Red Studio from code_red.
Neither is open source or free and all have limitations. It seems to me that only Code Composer Studio and Red Studio is Linux compatible.
I stumbled upon yet another product, Rowley CrossWorks, which is also Linux compatible but still very commercial and expensive.
Is it really true that there is no open source alternative? Most of the products seem to use Eclipse and GCC, which one should be able to do without these commercial packages, right? I just can't find any tutorial or guide explaining how to do set this up for embedded ARM programming. Also I need to know how to program the device after compiling.
I really want to get started soon. Any advice and ideas are very appreciated :-)
It's always the same, no matter which eval board you have: STM32 discovery, LPCXpresso, TI Launchpads. They are very cheap, but the recommended IDEs are limited: Their code size is limited, Windows only, or they are bound to a specific Linux distribution.
In my experience the choice depends on your long-term goals:
Do you want to share code with AVR 8-bit (or PIC32, Renesas RX 32, ...)?
Is it a mid-term/long-term goal to have a build system based on make?
Do you need tab-completion and/or an integrated debugger?
Do you want to try other eval boards in the future (without being forced to install yet another IDE)?
or do you just want to get this one up and running quickly. In that case I would use one of the recommended IDEs to get an impression.
On the other hand, all 32-bit microcontrollers I have used (Cortex-M0/3/4, PIC32, Renesas RX) can be programmed with gcc. As far as I know Code Red, Mentor, and MPLABX use gcc (or a modified gcc).
So there is always the possibility to use Eclipse with a Makefile project, and gcc.
I have tried it twice, but it did not work well for me, because I share libraries between the different targets, and I found it difficult to pass around the defines in Eclipse.
So my IDE is Makefile, Emacs, and gcc, and I have switched completely to using C++: This might be another advantage of using gcc.
Both possibilities (Eclipse with Makefile project or just editor with make) are not "off the shelf": They require time, patience, and your favourite Internet search engine.
Update
I am not aware of a complete tutorial on how to setup a GCC + make based environment, so I simply describe the basic steps I did it some years ago (with some changes).
Get a binary distribution of GCC for ARM from https://launchpad.net/gcc-arm-embedded
The following steps are STM32 specific:
Get one of the discovery boards, for example the STM32 value line Discovery.
Get a flash utility: I am using stlink (git clone https://github.com/texane/stlink.git). This includes a GDB backend as well.
There are various examples available, search for "stm32vl discovery blink" (I cannot recommend one here, the one I used has vanished)
As an alternative (or follow-up): Get the Peripheral firmware examples
You will find a GNU ld compatible linker script in Project/Examples/GPIOToggle/TrueSTUDIO/stm32_flash.ld
You will find a GNU as compatible startup in Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_ld_vl.s
You will find all other required library include files and sources in the .zip archive as well
Look at the GPIOToggle project (Project/Examples/GPIOToggle)
Write a Makefile to compile, link, and flash
To build your own development environment you could use the following combination:
Eclipse CDT
Get the toolchain to be used (official GCC version or some third-party customized for your platform)
Integrate the toolchain into Eclipse environment either through the internal Eclipse build system (CDT builder) or through some external builder (i.e. make)
In order to have JTAG debugging support, there is a GDB Hardware Debugging Eclipse plug-in you will need to setup
I've managed to complete my own setup in such a way for LPC1769 (Cortex-M3 CPU) and it worked :)
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 2 years ago.
Improve this question
I am in the market for a new IDE but am confused about the overlap between some of Jetbrains' offerings. It looks like IntelliJ IDEA has plugins that allow you to do Node.js and php development.
Can IntelliJ IDEA do everything that WebStorm and PHPStorm do through plugins or do they have special features not available in IDEA? I am hoping to have a single polyglot IDE for all development.
All of the functionality of our lightweight IDEs can be found within IntelliJ IDEA (you need to install the corresponding plug-ins from the repository).
It includes support for all technologies developed for our more specific products such as Web/PhpStorm, RubyMine and PyCharm.
The specific feature missing from IntelliJ IDEA is simplified project creation ("Open Directory") used in lighter products as it is not applicable to the IDE that support such a wide range of languages and technologies. It also means that you can't create projects directly from the remote hosts in IDEA.
If you are missing any other feature that is available in lighter products, but is not available in IntelliJ IDEA Ultimate, you are welcome to report it and we'll consider adding it.
While PHP, Python and Ruby IDEA plug-ins are built from the same source code as used in PhpStorm, PyCharm and RubyMine, product release cycles are not synchronized. It means that some features may be already available in the lighter products, but not available in IDEA plug-ins at certain periods, they are added with the plug-in and IDEA updates later.
But here's the rub, sometimes you can't or don't want to wait. For example I want to use the new support for RubyMotion which includes RubyMotion project structure support, setup of rake files, setup of configurations that are hooked to iOS Simulator etc.
RubyMine has all of these now, IDEA does not. So I would have to generate a RubyMotion project outside of IDEA, then setup an IDEA project and hook up to that source folder etc and God knows what else.
What JetBrains should do is have a licensing model that would allow me, with the purchase of IDEA to use any of other IDEs, as opposed to just relying on IDEAs plugins.
I would be willing to pay more for that i.e. say 50 bucks more for said flexibility.
The funny thing is, I was originally a RubyMine customer that upgraded to IDEA, because I did want that polyglot setup. Now I'm contemplating paying for the upgrade of RubyMine, just because I need to do RubyMotion now. Also there are other potential areas where this out of sync issue might bite me again . For example torque box workflow / deployment support.
JetBrains has good IDEs but I guess I'm a bit annoyed.
I regularly use IntelliJ, PHPStorm and WebStorm. Would love to only use IntelliJ. As pointed out by the vendor the "Open Directory" functionality not being in IntelliJ is painful.
Now for the rub part; I have tried using IntelliJ as my single IDE and have found performance to be terrible compared to the lighter weight versions. Intellisense is almost useless in IntelliJ compared to WebStorm.
IntelliJ IDEA vs WebStorm features
IntelliJ IDEA remains JetBrains' flagship product and IntelliJ IDEA provides full JavaScript support along with all other features of WebStorm via bundled or downloadable plugins. The only thing missing is the simplified project setup.
Taken from : https://confluence.jetbrains.com/display/WI/WebStorm+FAQ#WebStormFAQ-IntelliJIDEAvsWebStormfeatures
Definitely a great question.
I've noted this also as a sub question of the choice for versions within IDEa
that this link may help to address...
http://www.jetbrains.com/idea/features/editions_comparison_matrix.html
it as well potentially possesses a ground work for looking at your other IDE choices and the options they provide.
I'm thinking WebStorm is best for JavaScript and Git repo management, meaning the HTML5 CSS Cordova kinds of stacks, which is really where (I believe along with others) the future lies and energies should be focused now... but ya it depends on your needs, etc.
Anyway this tells that story too...
http://www.jetbrains.com/products.html
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 10 years ago.
I want to get into Erlang programming, specifically some yaws stuff. (Currently, I use Eclipse for Java development.)
What is the IDE of choice for Erlang development?
While there are several choices of plugins for NetBeans or Eclipse, the officially recommended IDE is Erlang mode for Emacs
Eclipse does the job just fine for me with the Erlang plugin. If you are already familiar with that through Java development why not simply stick with that?
I have also used JEdit and it performs pretty well.
Both are pretty good at syntax highlighting and have templates for new modules (OTP etc.).
Although I agree that Emacs is the "official" editor of choice you don't have to use it (and learn a whole new editing approach) if you don't want to.
Emacs is the IDE of choice. It supports Distel which plugs your editor into a cluster of Erlang Virtual Machines as an Erlang node in its own right (maaan!).
If you are a new emacs user, I think emacs can really kill you :(
I try erlide(buggy for jump to defination, other is good) emacs-erlang mode(really hard for me), I finally choose sublime text2 for daily development. I suggest you can try it.
i install the following plugins:
package control
sublime-erlang
sublimerl
ctags
that's as good as I expected.
Look for this one:
IntelliJ IDEA + Erlang plugin
https://plugins.jetbrains.com/plugin/7083-erlang/
If you use Eclipse already, Erlide works nicely. I do think that Emacs with erlware-mode is better, but the learning curve may be a bit steep.
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 10 years ago.
I've been on a frustrating quest to find an IDE which provides reasonable support for Grails 1.1 development. My minimum requirements are:
Supports running tests within the IDE
Supports debugging within the IDE while running either the tests or the app itself
Provides code-completion, including dynamic finders added to domain classes
Here's a rundown of my experience so far
Eclipse 3.4.2 (Ganymede)
Using the latest plugins available from the update site, Eclipse's support for Groovy/Grails is truly pathetic. It provides little more than code completion and spurious errors
NetBeans 6.7 Beta
As soon as I imported the project, NetBeans began scanning it. The Navigator view was waiting for the scanning to finish before showing it's contents. About 20 minutes later, both the Navigator view and I were still waiting. Also, support for code completion on dynamic finders is poor, and for some reason it copied all the plugins into $PROJECT_ROOT/web-app/plugins.
IntelliJ 8.1.2
Although the general consensus is that IntelliJ is the best IDE for Groovy/Grails, it does not work well with Grails 1.1.X. The root cause of the problem appears to be the change in the location of the plugins folder. IntelliJ is unable to build the app because it can't find classes I'm importing from plugins, even though those plugins are listed in application.properties
So my question (finally) is whether anyone has found an IDE (not TextMate or Vim) that works with Grails 1.1.X when the plugin folder is in it's default location, i.e. under $HOME/.grails/1.1.X/plugins?
If so, I'd be really grateful for information about:
Which IDE to use (including version number)
Which plugins (if any) need to be installed
How to import an existing project into the IDE
How to run the app, the tests, and debug from within the IDE (if it's not obvious)
Thanks,
Don
NetBeans 6.7 now with Grail 1.1 support
I'm unclear on which version of IntelliJ IDEA the author of that blog post tested, tha didn't work with Grails 1.1.1.
Idea 8.1.2 works very well for me on OSX with Grails 1.1 and 1.1.1. Grails is installed under /Developer/grails-1.1.1 (with a symlink at /Developer/grails ), and the plugins are in the ~/.grails/1.1.1/plugins directory.
I didn't have to install any extra Idea plugins. What I did have to do was tell it where the plugins were, and install the missing ones once I had upgraded to 1.1.1. IDEA's grails integration can even recognize the plugins from the Grails repository and install them from the IDE.
NetBeans 6.7 RC3 works much better with Grails 1.1.1 than the versions before. Debugging only works in attached mode, i.e. you start your application from the command line (grails-debug run-app) and then attach the Netbeans Debugger (port 5005). My experience is that the watches do not show the correct values of the running process. Automatic code formatting is horrible.
IntelliJ 8.1.3 worked good for me with Grails 1.1. Debugging was working correctly (most of the time, from time to time, the status of the debugger does not match the actual process' status) and code formatting is quite good. After I switched to Grails 1.1.1 IntelliJ refuses to start my app ("error running MyApp: Grails are not configured") although grails is installed and GRAILS_HOME is set correctly. The trick is to change the facet in the module settings of your project. There you have to configure the location of your grails 1.1.1 installation. Then IntelliJ crashed while starting your app and you have to do the configuration again . With a little bit of luck it works then and everything is fine.
I've spend a lot of time with these issues in the last days and I am quite angry about that. Therefore I'd like to recommend to go away from grails and to use ruby on rails with NetBeans 6.7 instead. Then you can start to focus on your business, not on configuration and installation issues. If you really need to stick with grails, use IntelliJ and pay for it. It's worth it. Do not even think about using Eclipse, if you do not want to go crazy.
I've been playing around with the version 9 milestone 1 release of IntelliJ and so far have not had any problems working with grails apps.
One thing i did notice was that the project explorer doesn't always refresh properly when files are added via an automated process. sometimes i have to close and re-open the project to see the new files, but that could just be a beta issue in general and not related to the grails support.
They've added a lot of Groovy and Grails support to the latest version of the Spring Source Tool Suite. It doesn't ship with these plugins by default, but there are options to install them as extensions from the dashboard page.
Some of the nice features include the ability to run grails commands in the IDE and support for editing GSPs. The Groovy language support has gotten much better too with the latest release of the plugin. You can read more about that here.
The Spring Tools Suite is also an excellent choice for grails/groovy development. I use it and do not have any cause for regret.
I've been using Netbeans 6.7 for some time and it's very slow, the code completion rarely works. Basically I'm using it as an editor and to format my code.
I used the EAP version of IDEA 8.1 and it was really nice - very easy to setup and develop in compared to the other IDEs. Sorry I don't remember exactly how to import an existing project but it was fairly straight forward.
If cost is not an issue, then IDEA would probably be the best choice.
I use STS (SpringSource Toolkit), I like it better than Intellij or Netbeans. I am using 2.3.3.M2
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 recently found this: http://php.net/get/php_manual_en.chm/from/a/mirror.
It's a .chm file that contains all the documentation for PHP which you can normally find on their site. Handy for offline use.
I'm wondering, does anybody know of similar things for other languages. Complete offline documentation that you can use if you don't have wireless for a while.
For C#, Visual Studio gives you the option to download and install the entire online documentation as a part of the VS2008 install, so if you have Visual Studio 2008, then you have the C# offline documentation.
EDIT: if you're gonna say this and that is possible, please post hyperlinks.
This is what we have now:
PHP: http://be.php.net/get/php_manual_en.chm/from/a/mirror
Java: http://java.sun.com/javase/downloads/index.jsp#docs
C: http://www.gnu.org/software/libc/manual/
MS SQL server: http://www.microsoft.com/downloads/details.aspx?FamilyId=765433F7-0983-4D7A-B628-0A98145BCB97
Python 2.x: http://docs.python.org/download.html
Python 3.x: http://docs.python.org/py3k/download.html
Ruby: http://railsapi.com/
The Common Lisp HyperSpec: ftp://ftp.lispworks.com/pub/software_tools/reference/
The complete MSDN library: no longer available, sadly
The Visual Studio 2008 SP1 offline library: https://www.microsoft.com/downloads/en/details.aspx?FamilyID=7BBE5EDA-5062-4EBB-83C7-D3C5FF92A373&displaylang=en
Dash http://kapeli.com/dash includes offline documentation for 150+ APIs.
Most language should provide that.
Some examples:
Java: Java SE 6 docs (below on the page)
Perl: Unix versions of perl typically come with full docs as manpages and perldoc (some Linux distributions put these into extra packages); I suppose Windows versions do the same
C: the GNU libc library has downloadable docs
Python also has downloadable documentation. As a result, most operating systems which provide Python also provides a documentation package. For instance, on Debian, this is package python2.5-doc (one package per version).
Install it and you can browse the documentation offline. Very convenient for a laptop which is not always connected.
For jQuery, I recommend jQAPI - Alternative jQuery Documentation Browser, that you can find here: http://www.jqapi.com/
You can use it online as well as download it for offline use.
btw, the Visual Studio docs (MSDN) also include documentation for JScript, VBScript, HTML and CSS. Back when I programmed PERL I always installed perldoc.
Downloading the documentation is pretty much the first thing I do if I've got any serious work to do in an unfamiliar language. Just reading through the API is like mining gold!
Visual Studio comes with the C# specification, installed by default in
C:\Program Files\Microsoft Visual Studio 9.0\VC#\Specifications\1033
MS SQL Server ships with a whole load of documentation know as "Books Online". Despite the name you can downlaod these from MSDN.
Ruby, Rack, Rails, and several gems can all be found at railsapi.com
Cppreference.com is great for C++ and C reference. They also have offline versions here.
For Java you can download the entire API to use offline.
Sun provides downloadable versions of the Java platform documentation.
Java SE Downloads
Scroll down the page and look for the link called Java SE 6 Documentation. It is a series of HTML files covering the entire Java SE JDK. It can be handy to have it stored locally, but because there is no search functionality, its uses are somewhat limited.
While not strictly a language you can build docs for Ruby on Rails by doing the following
rails sample_project
rake rails:freeze:gems
rake doc:rails
rake rails:unfreeze
and then use or take yourself a copy of the doc/api folder
You can also download MSDN to get documentation for VB.NET, C#, C++ and various Windows & Component APIs
Common Lisp has the hyperspec. A complete guide the language and its libraries.
Common Lisp Hyperspec
I actually mirror a portion of the PHP site for myself, just once a week, by RSync (which is quite efficient, only downloading about 1/6th of what a full download would take).
A couple of advantages of a local copy running on my own server is that the shortcuts (for example php.net/array_merge) work, and I've got the full notes as well.
for C#, I just found this offline documentation:
http://www.microsoft.com/downloads/details.aspx?FamilyID=7BBE5EDA-5062-4EBB-83C7-D3C5FF92A373&displaylang=en
beware - large file size.
(still downloading, so hope I'm not misleading anyone here)