# FreeBSD IDE?



## SuperuserRoot (Nov 16, 2020)

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


----------



## SirDice (Nov 16, 2020)

SuperuserRoot said:


> 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? 



SuperuserRoot said:


> i would like something like microsoft visual studio


Then you should use Windows and install it there. 



SuperuserRoot said:


> 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.


----------



## a6h (Nov 16, 2020)

SuperuserRoot said:


> 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


----------



## Zvoni (Nov 17, 2020)

This reminds me of 15-20 years ago, when the script-kiddies started to ask
"What's the best IDE for HTML?"
Answer: "Notepad".......


----------



## unitrunker (Nov 17, 2020)

tmux + vi


----------



## wolffnx (Nov 17, 2020)

SuperuserRoot said:


> 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


----------



## drhowarddrfine (Nov 17, 2020)

FreeBSD and Unix is my IDE


----------



## obsigna (Nov 17, 2020)

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.


----------



## kpedersen (Nov 17, 2020)

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.


----------



## drhowarddrfine (Nov 17, 2020)

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.


----------



## ralphbsz (Nov 17, 2020)

obsigna said:


> 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.


----------



## a6h (Nov 17, 2020)

IDE is like stand up comedy. It's overrated.


----------



## amr (Nov 17, 2020)

editors/atom


----------



## Jose (Nov 18, 2020)

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.


----------



## unitrunker (Nov 18, 2020)

My serious answer is jucipp.


----------



## a6h (Nov 18, 2020)

Jose said:


> 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.


----------



## Zvoni (Nov 18, 2020)

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!


----------



## kpedersen (Nov 18, 2020)

unitrunker said:


> My serious answer is jucipp.


That IDE does look really interesting. They look to have a thoughtful approach to what they support and the scope rather than just chucking in absolutely everything.

I think the biggest issue is that it only supports Clang which isn't really an issue for us


----------



## Beastie7 (Nov 18, 2020)

vigole said:


> Read the following article: Unix as IDE


This is an interesting view point. I’d be nice if FreeBSD had it’s own widget toolkit/Graphics Library to supplement native GUI development. Sort of like a barebones base system for applications, but the environment is still left up to the user.


----------



## Jose (Nov 18, 2020)

unitrunker said:


> My serious answer is jucipp.


Looks interesting. I'm giving it a try.


----------



## a6h (Nov 18, 2020)

Beastie7 said:


> 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


----------



## Beastie7 (Nov 18, 2020)

vigole said:


> 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.


----------



## kpedersen (Nov 18, 2020)

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.


----------



## a6h (Nov 18, 2020)

Beastie7 said:


> It’d give FreeBSD complete independence from any external entity.


That's the problem. Division of labour is essential. Total self-sufficiency leads to poverty!


----------



## Beastie7 (Nov 18, 2020)

kpedersen said:


> 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?



vigole said:


> 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.


----------



## a6h (Nov 18, 2020)

Beastie7 said:


> Chasing Linux upstream with shims and re-writing dependencies isn’t exactly productive either.


Agreed.


----------



## kpedersen (Nov 18, 2020)

Beastie7 said:


> Is X.org not a candidate?


It is certainly the closest we have (and am a big fan) but I don't believe it is standardized by POSIX.
Yes POSIX was quite possibly formalized before X11 but it has had many years to include it and no standards body really has.

It seems pixel based drawing has a number of complexities that cannot be standardized; I cannot fathom a reason why. Lack of skill or leadership in the IT industry perhaps?
And now Wayland is going to distract people for ~5 years until it gets dropped and something decent gets written as a real replacement. Meaning a standard display system is going to be delayed for another decade at least.

Oddly enough I think CDE was a (now widthdrawn) POSIX standard. However looking around at the entire industry... we are no longer as capable as we once were ~20 years ago. I don't think we can come up with meaningful standards anymore. Too many broken companies with terrible short-sighted monetization ideas rather than actual progress. Newer really isn't better these days.


----------



## vermaden (Nov 18, 2020)

SuperuserRoot said:


> 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


Geany.


----------

