FreeBSD IDE?

what is the best IDE for freebsd? i would like something like microsoft visual studio, but to create programs for freebsd on freebsd, and of course with a graphical interface
 
what is the best IDE for freebsd?
This is highly subjective. What works best for me may not work at all for you. And an IDE for what language? What do you expect of an IDE?

i would like something like microsoft visual studio
Then you should use Windows and install it there.

but to create programs for freebsd on freebsd, and of course with a graphical interface
In what language? And you don't need an IDE to program, in any language. All you need is an editor and an appropriate compiler. There's plenty to pick from. But maybe you should learn the basics first, an IDE isn't going to help you with that. Get a good book for the language you're interested in and start learning.
 
i would like something like microsoft visual studio
Then I guess you probably have some experience with Visual Studio in Windows, and also I'm completely aware that Visual Studio Code is not Visual Studio, but I think editors/vscode AKA Visual Studio Code, is a good alternative. It's all up to you, but it would be great to invest some time to learn developing in FreeBSD with native/traditional FreeBSD/UNIX tools. Read the following article: Unix as IDE
 
This reminds me of 15-20 years ago, when the script-kiddies started to ask
"What's the best IDE for HTML?"
Answer: "Notepad".......
 
what is the best IDE for freebsd? i would like something like microsoft visual studio, but to create programs for freebsd on freebsd, and of course with a graphical interface
maybe I am wrong but you dont know any programing language "graphical" like GTK or QT dont?
for that case there is no magical IDE that make everything for you, if you can, learn from the basics
for example C and go for there
 
Sorry guys, I think I need to step in here. Only masochists use vi or any other console text editors for projects with 10ths of thousands of lines of source code in hundreds of files. You want to have something which integrates all this into one environment.

Everybody knows that the graphical interface of an IDE is more nice than exactly necessary. We usually take this for granted. BUT, we want to step through our code and be able to examine the variables when debugging. We want to have the static analyzer integrated. If we build GUI applications, we want to have a visual GUI editor which links the elements to our source code. We want to search/replace project wide. We want to have SCM tools integrated and compare on the fly old source versions with changed ones, which is specially helpful when something does not work as expected after some changes. We want to have code expansion and a one click integrated man/doc/help system.

Of course you can do all this with standalone tools, but sorry, I won't take those suggestions really serious. Admit it, you’re talking about programming of tools with max. 100 lines of code, don’t you? Well, for that kind of programming, I also already did it quickly and dirty with nano and searching/replacing with sed.
 
There are generally two approaches:

1) A large IDE that tries to do everything (does this stem from Borland Turbo C++ from the ancient DOS days?)
2) A single text editor that edits text. Separate debugger, separate analyser, separate diagram tool.

I prefer the latter because I think it is a bit more of a modern approach (computers can now multi-task!). In this case my tools of choice are generally things like:
(n)vi, tmux, gdb, m4. But for many projects I also utilize things like valgrind, vtune, etc. I don't think you could find an IDE with all this functionality in it in any case.
 
The advantage is you put together the tools you want to use, how you want to use them, with the minimal resources needed and not what's given to you.
 
Only masochists use vi or any other console text editors for projects with 10ths of thousands of lines of source code in hundreds of files.
To begin with, coding and debugging is not at all 100% of the work of a software engineer. A very significant fraction of the work (I would say typically 1/3 to 2/3) is gathering requirements, designing, holding reviews, communicating with stake holders (be it customer support, engineering management, finance, ...). From a "improve productivity" point of view, much more important questions are: what tool do you use for e-mail and remote meetings? Is your company culture conducive to working together? Are coding rules sensible, and enforced reasonably? Is the requirements/design/code review process smooth, efficient yet accurate? Are source control, issue tracking, and project management tools integrated well enough to know what's important? These are big questions. Compared to them, details (like how to arrange windows on the screen) are actually minor.

Further, I work with lots of software engineers, on projects that start in total size at a million lines of code and go up from there, but are typically broken into subprojects where at any given moment, you're focussed on thousands of lines of codes. And most of my colleagues don't worry about IDEs, but discuss the really important question: emacs or vi? Because that's what a large fraction of the code editing is still done in: ssh windows to development machines (nearly always rack-mounted in some data center). But lots of graphical tools are also used. Certainly, to see visual diffs between versions, or to get a history of branches in the source code control, or to see what GUI-based code would output, or to integrate bug tracking with source control, one uses graphical tools; today they are usually web-based. A few people then stay in those tool chains to do the editing, but I think the bulk of the editing work gets done in a shell window with emacs or vi.
 
I'm with Obsigna. I've worked with people that hacked on massive C codebases using vi on a Sun workstation, but that's not for me.

I love the integrated debugger and shudder at the thought of having to go line-by-line in gdb or similar. I also love auto-completion. I don't have to remember how every API I might ever want to use in every language is spelled. I start to type and the IDE does the rest. Hovering over an expression can pull up the documentation for it most times. It's easy to find where things are declared and even all the places where they are used.

I use editors/vscode with Clangd for C and C++. I use java/eclipse with Pydev for Java and Python.
 
I don't have to remember how every API I might ever want to use in every language is spelled.
Fair enough. I'm using both nvi/vim and vscode. It would depend on the situation. Function autocomplete is one of those. Another one was MPLAB, which is not available on FreeBSD.
 
All true, but consider the way the OP posted his question, and Sir Dice actually broke it down to the most important question: Which Language to use?
I'm using Lazarus/Freepascal on Linux, but i know that Lazarus/Freepascal is available for FreeBSD, so there: A full IDE to write programs on FreeBSD for FreeBSD.
OP's question answered!
 
I’d be nice if FreeBSD had it’s own widget toolkit/Graphics Library to supplement native GUI development
It is possible. Case in point sound(4). (*) Although that's different story. It's in the base. Regarding the GUI, it's up to talented developers to develop a FreeBSD specific GUI system and maintain it in the ports tree. But it's a gigantic task. It takes a lot of time and investment. Frankly I don't think it ever happens. Of course for legitimate reasons. Let's imagine I'm a FreeBSD developer. Personally I prefer invest my time on embedded projects and dealing with CLI, rather than developing a GUI system from the ground up.

Footer (*): FreeBSD Sound
 
It is possible. Case in point sound(4). (*) Although that's different story. It's in the base. Regarding the GUI, it's up to talented developers to develop a FreeBSD specific GUI system and maintain it in the ports tree. But it's a gigantic task. It takes a lot of time and investment. Frankly I don't think it ever happens. Of course for legitimate reasons. Let's imagine I'm a FreeBSD developer. Personally I prefer invest my time on embedded projects and dealing with CLI, rather than developing a GUI system from the ground up.

Footer (*): FreeBSD Sound
I was thinking from the perspective of FreeBSD being a ”toolkit” for developing anything GUI related. Whether it’s a desktop GUI, a kiosk, phone/tablet OS, a console/media player, etc. It’d give FreeBSD complete independence from any external entity. We‘re going to be shipping DRM in base soon; It’d be nice to have other native libraries in base to facilitate GUI development. One could throw i3 on FreeBSD, and quickly get started, for example, using that “Unix as an IDE” concept.
 
FreeBSD provides (n)curses in base. Since there does not exist a standard display system in open-source, I don't see how a meaningful widget set could ever be provided by a UNIX-like OS.
 
  • Thanks
Reactions: a6h
FreeBSD provides (n)curses in base. Since there does not exist a standard display system in open-source, I don't see how a meaningful widget set could ever be provided by a UNIX-like OS.
Is X.org not a candidate?

That's the problem. Division of labour is essential. Total self-sufficiency leads to poverty!
Chasing Linux upstream with shims and re-writing dependencies isn’t exactly productive either. That’s probably most of our ”desktop” ecosystem in FreeBSD anyway.
 
  • Thanks
Reactions: a6h
Back
Top