Author Topic: How to create our own stable IDE  (Read 8482 times)

0 Members and 1 Guest are viewing this topic.

Offline VIGNESH BALAJITopic starter

  • Newbie
  • Posts: 7
  • Country: in
How to create our own stable IDE
« on: February 12, 2016, 06:05:23 am »
Hi,
    I want to create my own stable IDE.I want to know how to do it???
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 11236
  • Country: us
    • Personal site
Re: How to create our own stable IDE
« Reply #1 on: February 12, 2016, 07:13:28 am »
    I want to create my own stable IDE.
That's a very broad question. Let's start with a stable OS first.

What is "stable" in your opinion? What do you expect from that IDE?

I want to know how to do it???
We all do.
Alex
 

Offline filssavi

  • Frequent Contributor
  • **
  • Posts: 433
Re: How to create our own stable IDE
« Reply #2 on: February 12, 2016, 08:08:49 am »
Well writing a (somewhat complete) IDE from scratch is very difficile task, mainly because of the sheer ammount of things it has to do to be functional, in fact for every drveloper IDE means a differenti thing which build system are are you going to support, which compiler and debugger remote debugging?

And alla of these features are what defines an IDE, otherwise you have only a glorified text editor

What i suggest doing is to start from a well known Open Source IDE that everyone loves to hate (eclipse), pick a version (the last stable?) fork it and start bugfxing until you have a relatively smooth experience, and than you are fine you have a stable IDE

Bonus points if you push the fixes to mainline
 

Offline VIGNESH BALAJITopic starter

  • Newbie
  • Posts: 7
  • Country: in
Re: How to create our own stable IDE
« Reply #3 on: February 12, 2016, 12:33:44 pm »
Yeah I can use Eclipse latest version Mars.Will that be stable in the sense without any bugs?I want to Basically use it for Kinetis microcontrollers.
My basic requirement is good debugging and good GUI for IDE which has many plug-ins like static and run-tiime analysis.

Please suggest me how to integrate Eclipse with GCC and any good debugger.
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: How to create our own stable IDE
« Reply #4 on: February 12, 2016, 12:47:11 pm »
coide supports kinetics as well. You can also embed PE manually in your project.

Stepping back further, coide can be made to support pretty much any CMx chips - even if the IDE itself doesn't support them directly, as you can always manually add the support yourself.
================================
https://dannyelectronics.wordpress.com/
 

Offline newbrain

  • Super Contributor
  • ***
  • Posts: 1719
  • Country: se
Re: How to create our own stable IDE
« Reply #5 on: February 12, 2016, 01:45:25 pm »
coide supports kinetics as well.

I wouldn't go for coide, apart from being long dead (no updates in 8 months and just spam on the forums) it's always been quite buggy...much more than the base Eclipse.
If one wants to stay on Eclipse, and build on something already working, I would go for Gnu Arm Eclipse plugins. All the source code is available.

Proprietary environments exist, with all kinds of prices, in addition to the free as in beer and as in freedom ones...
Nandemo wa shiranai wa yo, shitteru koto dake.
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: How to create our own stable IDE
« Reply #6 on: February 12, 2016, 02:21:27 pm »
Quote
it's always been quite buggy

I have used coide since 1.3 and now am on 1.7, and with a few projects under its belt. I have had no problem with it. The project wizard is absolutely superb and I suspect was the inspiration behind Keil's RTT.

Since it is really GCC + Eclipse, you don't have to have CoIDE update going forward.

Another choice is emblocks -> I have been its user since day 1 - still on beta 1.0 - but almost exclusively with PIC24F. Absolutely love it.
================================
https://dannyelectronics.wordpress.com/
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: How to create our own stable IDE
« Reply #7 on: February 12, 2016, 03:27:41 pm »
Yeah I can use Eclipse latest version Mars.Will that be stable in the sense without any bugs?

 :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD

Surely you're joking.
Complexity is the number-one enemy of high-quality code.
 

Offline artag

  • Super Contributor
  • ***
  • Posts: 1064
  • Country: gb
Re: How to create our own stable IDE
« Reply #8 on: February 12, 2016, 03:54:29 pm »
Why do people want an IDE ?

The only use I've found for them is for a quick intro, where you lead the user through a series of simple exercises. They can be helpful there in providing a very controlled environment that corresponds directly to a tutorial. As soon as you want to get into something a bit more complex with a need for link control and more than one source directory, they mostly get in the way. And they present only a subset of the operating system's toolset, so as soon as you want to do something more general you're out of it.

Unix is the world's best IDE in the full sense of the phrase. It was designed by developers for their own purposes, and the vast majority of it is integrated through pipes or shared files. It isn't like what passes for an IDE in the GUI world : it's many times more integrated with the bits that really matter, while allowing complete generality in extensions.

Most of all, the project files are all of the form that can easily be handled by source code management - they're not intended to hold internal IDE state, but are the links between ascii-driven tools. Thus it's easy to look at differences between versions and store history in a useable form. This is essential for a professional development.

Eclipse seems to have set out to bring similar flexibility in  a GUI world, but imho fails badly. It introduces extra dependencies and provides all sorts of facilities that merely replicate features of the operating system. I recently had the misfortune to work with an eclipse-based IDE that had constructed projects as a number of virtual directories. These were completely unmaintainable, with complex methods to find what was actually included and the need to introduce new files through the unintuitive IDE interface rather then by merely adding them via the familiar OS tools.

 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26891
  • Country: nl
    • NCT Developments
Re: How to create our own stable IDE
« Reply #9 on: February 12, 2016, 03:59:32 pm »
Why do people want an IDE ?
The answer is simple: code management. IDEs can be divided in 3 basic categories:

1) editor with compile button stuck on it and tools to aid the build process
2) 1 and debugging
3) 1 and 2 and code management and version control integration

Code management (finding functions, call hierarchies, finding defines, realtime syntax checking, etc) helps to work through huge projects quickly. Version control integration makes it easy to deal with various versions and look for differences/updates. Eclipse falls into category 3 and improves productivity a lot. Sure you can do everything using command line tools but for general use that is way to cumbersome. Only for very special cases command line tools offer an advantage.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: How to create our own stable IDE
« Reply #10 on: February 12, 2016, 04:13:47 pm »
Quote
Why do people want an IDE ?

ease of use, retargeting and project management.
================================
https://dannyelectronics.wordpress.com/
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: How to create our own stable IDE
« Reply #11 on: February 12, 2016, 04:30:00 pm »
the largest project I ever compiled is a motor cycle speedo project: CMSIS, vendor libraries, RTT, corporate middleware, emwin, a file system + an os layer, plus imagine files. a few hundred files, and 1MB+ flash. It took 15 - 20 minutes to compile on Keil.

it would be a little tough to navigate through such a project.
================================
https://dannyelectronics.wordpress.com/
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11622
  • Country: my
  • reassessing directives...
Re: How to create our own stable IDE
« Reply #12 on: February 12, 2016, 04:30:23 pm »
Why do people want an IDE ?
The only use I've found for them is for a quick intro
how do you debug? i'm guessing if you dont have a need for interactive debug, then you havent been quick intro'ed with real world softwares.. a software with one or two buttons and textboxes doesnt need debug, yes that one i agree...
Unix is the world's best IDE in the full sense of the phrase. It was designed by developers for their own purposes,
so is that the reason why most top class engineering, artists, photography videography softwares are being developed in Windows? oooppssss sorry, in Unix/Linux?
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline bigdawg

  • Regular Contributor
  • *
  • Posts: 98
  • Country: us
Re: How to create our own stable IDE
« Reply #13 on: February 12, 2016, 06:55:31 pm »
Yeah I can use Eclipse latest version Mars.Will that be stable in the sense without any bugs?

 :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD :-DD

Surely you're joking.

maybe I am missing something here....I use eclipse as my primary IDE and I have had no major complaints with my projects on eclipse 4.x for variety of software development. Now, talking about STM HAL...thats a whole different issue  :-DD
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: How to create our own stable IDE
« Reply #14 on: February 12, 2016, 06:57:25 pm »
maybe I am missing something here....I use eclipse as my primary IDE and I have had no major complaints with my projects on eclipse 4.x for variety of software development. Now, talking about STM HAL...thats a whole different issue  :-DD

He said "without any bugs". No significant piece of software, including Eclipse, is completely bug free.
Complexity is the number-one enemy of high-quality code.
 

Offline bigdawg

  • Regular Contributor
  • *
  • Posts: 98
  • Country: us
Re: How to create our own stable IDE
« Reply #15 on: February 12, 2016, 07:05:20 pm »
maybe I am missing something here....I use eclipse as my primary IDE and I have had no major complaints with my projects on eclipse 4.x for variety of software development. Now, talking about STM HAL...thats a whole different issue  :-DD

He said "without any bugs". No significant piece of software, including Eclipse, is completely bug free.

lol gotcha; no harm in dreaming for a "bugs free software"  :-DD

I thought maybe you were alluding something more specific regarding eclipse 3.8 vs 4.x versions since OP specifically referred to "mars" versions.
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: How to create our own stable IDE
« Reply #16 on: February 12, 2016, 07:12:00 pm »
Some have used Notepad++ to create their own IDE, because writing plug-ins is fairly trivial and you can issue commands from it.
 

Offline artag

  • Super Contributor
  • ***
  • Posts: 1064
  • Country: gb
Re: How to create our own stable IDE
« Reply #17 on: February 12, 2016, 08:03:03 pm »
I debug in various ways - with a GUI debugger like Lautenbach, with printfs, with an oscilloscope. It all depends on the job. I don't mean that every tool has to be command-line (though that's always easier when you're doing a quick hack to convert things for automated builds), just that their communication works through text files. I enjoy using a good debugger and it's a perfectly respectable use-case for a GUI, as is a source-code editor or browser. But I don't need them all to be in the same tool, because that tends to give me a screen crowded with useless inactive subwindows when I'm doing another function.

One IDE I tried was Atollic : that tries to reconfigure its window to suit the job you're doing. Horribly confusing. And so pointless : you already have a windowing system capable of maintaining multiple contexts for you. Why build another one on top of it ?
 
so is that the reason why most top class engineering, artists, photography videography softwares are being developed in Windows? oooppssss sorry, in Unix/Linux?

No, that's because that's where they see their customers. Macs for art stuff. Engineering demos in Windows because it's the lowest common denominator  - they can assume everyone will have access to one, and that's good enough for a demo. Consumer stuff for windows, because that's what 'family users' buy. The only puzzle is Autocad, which clings to Windows for some unknown reason. Probably because the big design tools all started on Sun and Apollo, moved off it because they got too expensive for their customers, and now don't have the wit to move back.




« Last Edit: February 12, 2016, 08:13:49 pm by artag »
 

Offline artag

  • Super Contributor
  • ***
  • Posts: 1064
  • Country: gb
Re: How to create our own stable IDE
« Reply #18 on: February 12, 2016, 08:06:20 pm »
The answer is simple: code management. IDEs can be divided in 3 basic categories:
 Only for very special cases command line tools offer an advantage.

But code management wants to be automated. A source browser is interactive, true. But that's mostly useful when you're introduced to a system (which could be important if you have a high staff turnover). Build systems, version control, test suites, are all better scripted, and command line (or text processing, more correctly) is easier for that.
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 895
  • Country: us
Re: How to create our own stable IDE
« Reply #19 on: February 12, 2016, 08:45:08 pm »
Build systems, version control, test suites, are all better scripted, and command line (or text processing, more correctly) is easier for that.
This.

The big advantage of "command line" is that you can easily incorporate new tools into your environment. E.g., I can write a Python program to generate some C++, which then gets compiled into the build. Or calculate a bunch of code metrics, add them into a sqlite3 database, and generate reports from there. And if someone else writes some really interesting Lisp code to talk to the version control system (from inside emacs), I can use that too. Command-line pieces fit together easily because they all use text to get work done.

Extending an IDE is much harder because they're (generally) monolithic, written in annoying languages, and use obnoxious file formats to represent state information.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: How to create our own stable IDE
« Reply #20 on: February 12, 2016, 08:47:47 pm »
so is that the reason why most top class engineering, artists, photography videography softwares are being developed in Windows? oooppssss sorry, in Unix/Linux?

No, that's because that's where they see their customers. Macs for art stuff. Engineering demos in Windows because it's the lowest common denominator  - they can assume everyone will have access to one, and that's good enough for a demo. Consumer stuff for windows, because that's what 'family users' buy. The only puzzle is Autocad, which clings to Windows for some unknown reason. Probably because the big design tools all started on Sun and Apollo, moved off it because they got too expensive for their customers, and now don't have the wit to move back.

With Linux desktop usage historically at never more than 2%, it's easy to see why few professional development package vendors go out of their way to support it.
Complexity is the number-one enemy of high-quality code.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26891
  • Country: nl
    • NCT Developments
Re: How to create our own stable IDE
« Reply #21 on: February 12, 2016, 09:05:31 pm »
That 2% is on average. In engineering the use of Linux is much more widespread. A poll on this forum indicated over 25% uses Linux as a primary OS. Xilinx wouldn't care to support Linux if only 2% of their users used Linux!
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: us
Re: How to create our own stable IDE
« Reply #22 on: February 12, 2016, 09:14:34 pm »
That 2% is on average. In engineering the use of Linux is much more widespread. A poll on this forum indicated over 25% uses Linux as a primary OS. Xilinx wouldn't care to support Linux if only 2% of their users used Linux!

Interesting. I suspect that a large proportion of the people on this forum are hobbyists. I wonder what percentage of professional developers use Linux?
Complexity is the number-one enemy of high-quality code.
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 11236
  • Country: us
    • Personal site
Re: How to create our own stable IDE
« Reply #23 on: February 12, 2016, 09:32:38 pm »
Interesting. I suspect that a large proportion of the people on this forum are hobbyists. I wonder what percentage of professional developers use Linux?
For FPGA a lot. Both Xilinx and Altera tools work way better and fully utilize multicore systems on Linux. But with Xilinx tools, you can also see that they were originally developed for UNIX. Some of really old stuff shines through in places :)

That does not apply for free Web-editions, which are locked to a single core anyway.

It also helps that the rest of the toolchain from third-party vendors (like Multisim) are also fully supported on Linux.
« Last Edit: February 12, 2016, 09:37:13 pm by ataradov »
Alex
 

Offline ehughes

  • Frequent Contributor
  • **
  • Posts: 409
  • Country: us
Re: How to create our own stable IDE
« Reply #24 on: February 12, 2016, 11:20:28 pm »
Kinetis Design studio is vanilla Eclipse + gnu arm embedded + open OCD in a nice package.    Save you self some time and just use it.   It is all open source if you feel like working on an IDE
 

Offline uncle_bob

  • Supporter
  • ****
  • Posts: 2441
  • Country: us
Re: How to create our own stable IDE
« Reply #25 on: February 13, 2016, 02:25:00 am »
Kinetis Design studio is vanilla Eclipse + gnu arm embedded + open OCD in a nice package.    Save you self some time and just use it.   It is all open source if you feel like working on an IDE

Hi

And you now have the "fully finished" KSDK ver 2.0 to go with it....:)

Bob
 

Offline uncle_bob

  • Supporter
  • ****
  • Posts: 2441
  • Country: us
Re: How to create our own stable IDE
« Reply #26 on: February 13, 2016, 02:39:17 am »
Hi,
    I want to create my own stable IDE.I want to know how to do it???

Hi

If you want a 100% perfect IDE, you will need far more resources that you can afford. I suspect that a "from scratch" bug free IDE is probably well over a thousand man years of effort.

If you hire 100 guys for 10 years, you get an IDE. At this point it is perfect *and* it supports the parts that were out on the market 10 years ago. In those 10 years, you have had ample time to find all the errors in the manufacturer's data sheets. You also have been able to test a few thousand MCU's to find all of the places the silicon it's self has bugs.

Unless you either have a major budget, or are happy working on an IDE pretty much forever, this is not a road to go down. You will spend *far* less time working through the bugs in something like KDS (like by a factor of 1,000) than you will writing an IDE from scratch.

Down the road from us, there is an outfit that has taken a somewhat less ambitious approach. They decided to build their own IDE on top of Eclipse. Nothing super fancy. More an in-house customization than anything else. Last time I checked, they had five guys full time on supporting the effort. That's a lot of expense. For them it made sense. It lets them move designs between different vendors and *know* that the design will work. It eliminates the "tool chain lock in" that binds you to a specific vendor. They can grab an ARM from any of their vendors and swap the designs around.

So, can it be done - sure. Is it a lot of work - yes indeed it is. Do you need a pretty narrow scope to get it working any time soon? Most certainly.

=======

The only rational way to go on Kinetics is KDS if you are doing this as a hobby. If you have a real budget, Kiel and IAR are both out there. They are dependent to some degree on the same "stuff" as KDS. That sort of reduces the advantage you get from them if "perfection" is your goal.

Bob

Bob
 

Offline VIGNESH BALAJITopic starter

  • Newbie
  • Posts: 7
  • Country: in
Re: How to create our own stable IDE
« Reply #27 on: February 13, 2016, 11:27:33 am »
Sure,I used KDS Felt difficult to migrate my earlier project to KDS faced GDB server Errors.

Has Anyone used Bare Eclipse and added The GNU toolchains and used for your Microcontroller Projects?
 

Offline rob-from-perth

  • Contributor
  • Posts: 12
  • Country: au
    • Logicware - Perth's Best Online Electronics Store
Re: How to create our own stable IDE
« Reply #28 on: February 13, 2016, 01:24:51 pm »
If you really are serious about creating your own IDE, it may be worth investigating Atom from Github

It runs on Windows, OSX and Linux and seems like a pretty decent way to go. Its open source and has been
written with developers in mind.

The flight manual, would be a good starting point in terms of 'hacking' the product to your needs.

Offline uncle_bob

  • Supporter
  • ****
  • Posts: 2441
  • Country: us
Re: How to create our own stable IDE
« Reply #29 on: February 13, 2016, 03:07:08 pm »
Sure,I used KDS Felt difficult to migrate my earlier project to KDS faced GDB server Errors.

Has Anyone used Bare Eclipse and added The GNU toolchains and used for your Microcontroller Projects?

Hi

Yes, indeed you can add it all one piece at a time into a bare copy of Eclipse. It does work. It is *far* more complex than simple debugging of KDS. Plan on spending many months getting a custom port working.

Bob
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf