Visual Studio as an IDE for XOJO

I’ve been using Realbasic/Xojo for over 10 years now and there are good things and bad things like all frameworks, languages, software.

One thing I come away with after all this time is that the XOJO IDE is not well suited for professional developers when compared to a product like Visual Studio.

10 years ago VS was an expensive windows only, limited language tool. A lot has change and it, along with VS code, is now a cross platform tool that support multiple languages. It also has the ability to support languages like XOJO. Why not leverage that to provide another option for professionals that use XOJO along with other languages? as an example look at how Xamarin works with VS and X-Code.

Very few languages are as tied to a single IDE as XOJO.

When I work in VS I get wonderful code completion and my mistakes are highlighted as I type them, before I run my project. When I want to add a few properties to a new method it takes no time. Change name of a property and have it update globally, no problem. Create projects to organize my code and allow easy sharing between projects. Integrated source control. The reality is I’m a 10X developer in VS as opposed to working in XOJO in many situations. This won’t be the case for beginners but the point of being a beginners is to have the opportunity to stick with a language and before an advanced user…at which point you require different things from the platform.

GUI design is a notable exception. I think that the XOJO IDE for window design is great.

Obvious requirements would be to create the language definitions for XOJO. Secondly would probably been the need to create a new project format with pure code files as well as sidecar files for the xojo project specific items. This stuff is pretty common in VS, look at how the .NET Razor pages work.

Anyway just wondering if this has ever been considered. A lot has changed in the last 4 years and leveraging VS/CODE is now an option that wasn’t available in the past.

1 Like

I’ve been using Realbasic/Xojo for over 12 years now and there are good things and bad things

One thing I come away with after all this time is that the XOJO IDE is very well suited to the project developement cycle, and is not as demanding and convoluted as the last one I used with VB.NET.

Obviously opinions will vary :slight_smile:

I frankly loathe the cumbersome VS IDE. Unintuitive and bloated. Just like the project folders it creates.

That reminds me the joke about Windows back in the seventies : “You do everything with the mouse, and then… you press Return…”

I think that some of those criticisms of VS were valid, but much less so today. VS CODE is basically a text editor with IntelliSense. If you haven’t used it you might be surprised.
The project folders are also much simpler with options to scaffold only what is needed. But that’s all moot anyway as it’s the project template that dictates all that.

Here’s what I think maybe we can agree upon:
The code completion, suggestion, realtime debugging in VS is much more advanced in VS and CODE. Debugging code in XOJO vs VS takes an oder of magnitude longer.

Most languages provide IDE alternatives. XOJO has 1

Code sharing in Xojo could be improved. Organizing code in modules is a pretty standard approach in XOJO but I can’t make those external references. If I make code changes to modules I have to save and then reimport them into all my projects. Not ideal.

Unit testing is not a straightforward process. I really don’t want to have to have my unit test framework in my application.

Speaking of using a mouse. Creating a class and a dozen properties takes less then 30 seconds in most languages and I never have to take my hands off the keyboard. If I want to add an interface and then copy the class it’s easy.

To add a property:
click add>select property. click change name, tab change type. Mouse click select scope.
vs
“public string myProp”

That last example is my main point of contention. I’d love to be able to knock out code that quickly using XOJO.

1 Like
  1. Cmd-opt-p
  2. MyProp
  3. String
  4. cursor up/down to select scope

No mouse required.

FWIW - The XOJO IDE really is nice for a lot of tasks. GUI creation is great. It is a lot more intuitive than the full VS app if you don’t use it all day. In a lot of ways it provides the training wheels to help ensure you don’t fall . When you want to go fast though it would be nice to be able to take the training wheels off.

In the immortal words of Ricky Bobby “I wanna go fast”

I agree that VS has a ton of really nice and professionally polished features. But, I feel the Xojo IDE is very productive for me because I know exactly where everything is and I really don’t want to spend the next few years learning something else. And, always remember, If you ain’t first, you’re last.

Greg. Nice tip.
However for me after the default value hitting tab again doesn’t go to the listbox showing scope, just looses focus.

I especially like the rename feature. I can right-click a variable anywhere in my app and select rename. All references and the definition are renames together.

That’s one of my biggest gripes with Xojo. No mouse over to check variables and properties. Not to mention making code changes at debug time without recompiling. (I know that would be possible the way Xojo is built)

try something like this.

//Feels like we’re missing something
dim myVar as string = method(a

…Oh right I forgot the bracket. The debugger will remind me of this after the 2 minutes and 6 seconds it takes to run my application.

In VS I get a little red “~” to remind me I did something dumb. Or remind me I need to explicitly cast something.

For small project that compile in 15 seconds it’s a non issue. Those add up to BIG time savings when working with big projects because you catch syntax errors as you type. Just like auto correct is catching all my spelling mistakes at I type this reply. I’m sure I conservatively loose an hour a day dealing with issues like that.

I think I see a lot of resistance to change from ALL sides and not just to this issue. I learned the hard way that you can’t just defend things as “the way we’ve always done them”, but neither can you stomp off into a new IDE just because the old one was not designed the way you think it should have been. I ran a very successful business based on listening to what users wanted and not what might have been easier to code.

I dearly want XOJO to grow in popularity - isn’t that what we all want? I’d dearly love to see replies in general aimed at “how do we work together and not only solve the problem but enhance the program as well”. It distresses me to see a program that’s been around for twenty or so years still making simple errors even a noob like me can find.

Don’t get me wrong, what you’ve produced is great, I’d just like to make it better.

1 Like

I do this all the time in Xojo using the search and replace function with the “Whole Project” and “Whole Word” options. It changes the name everywhere. It’s maybe not quite as direct as a specialized Rename function, but it works well, and it’s quick.

If Xojo becomes dependent on Microsoft for anything more than the Windows OS they’ll be in for a world of hurt. Anyone who hangs their hat on Microsoft’s nail finds their hat being held for ransom.

-Wes

Before 2000, I used Visual Basic, quite naturally coming from QuickBasic.

Then I switched to Real Basic in 2001. When I went to the Mac App Store in 2013, I fetched a project from 2002 in Xojo, and was able to load it unchanged.

VB sources from the same period are absolutely impossible to use. That is a HUGE problem I don’t have with Xojo.

With VS, source folders are a cumbersome and overblown mess where a mother cat would not be able find her kitten. In Xojo, even in XML, I can find things easily.

It is amazing how regularly in this forum, there are people coming from other environments who cannot seem to accept the Xojo philosophy, and want to make it something else.

I prefer Xojo for many reasons, and would not appreciate it becoming a satellite of VS.

BTW, Xojo is cross platform, and why did not the OP look into XCode instead ?

Visual Studio and Visual Studio Code are two different things. At this stage I use VS Code on the Mac as my main text editor. I also use it for coding in GO, JavaScript, Node & .Net Core and debugging. It is a great open source editor.

The XOJO editor has been around for sometime now and it is not getting much better. In my opinion moving to VS Code and devoting the current resources it consumes to other aspects of XOJO would be a good idea.

1 Like

VS is now cross platform, which is why I originally suggested it. X-code is not. Also providing support for other IDEs does not impinge upon the current workflow or link it to VS in any way.

…And can I just add that my suggestion was simply to offer another alternative. Very few languages are completely tied to a single IDE. I’m certainly not suggesting that abandoning the current IDE makes any sense, or event that supporting VS would be good for most developers.

What I am saying is that for certain pro developers, I count myself as one, there are certain productivity features missing that impede our use of the XOJO language. VS is not the only IDE that supports other languages, so does netbeans and eclipse. So my point is that other IDE’s provide a rich set of features some of which are not found in XOJO. By making the project files more friendly to 3rd party system it gives us more options.

People are bringing up the historical Microsoft approach of keeping things closed sourced and providing one way of doing things. Ironically they have moved away from this approach, towards an open source model and an inclusive community. I think the XOJO language would benefit immensely from support for other dev environments.

Lets start from the simplest issues to the most complex

  1. VS would need language definition files - which don’t exist
    Who would be responsible for creating these ? Xojo Inc ? They’re likely the only people who could write them and get them correct. And whats their interest or payback for doing this ?

  2. There are legal language constructs in Xojo that most other languages make illegal
    ie/ dim string as String = String()
    and now a “rename” would probably mess this up in VS. I’m not sure you can define this in the language files for VS in a way that this ambiguity can be resolved by VS.

  3. This would require a command line compiler - which doesn’t exist
    Its been on the feature request list for years so there seem to be no real prospects that it is going to happen soon.

  4. What do you do about visual components like Windows, Menus, Container controls, etc ?
    If you want the visual layout you have to use the Xojo IDE.

  5. VS would not know what code to write to make an application.
    The current IDE writes a LOT of code for you that VS would somehow have to be taught to write. And the only people who know what that code is are Xojo Inc and they have no real vested interest in making VS their “IDE”

In most languages the code you write is 100% of the code that gets compiled. That is NOT the case in Xojo. The IDE writes a lot of code for you as part of generating an application.

At this point VS isn’t an “IDE” - its a code editor - like Notepad++, BBEdit, TextWrangler, Emacs or Eclipse

  1. Yup, this is what would be required. They would have to do it. It would also have to be “official” or else it could cause too many issues which is why I’m floating the idea rather then just making it happen. The payback would hopefully be to help make it easier to work with XOJO for those coming from other languages. A lot of people are used to working in Eclipse/VS/Code/Notepad++. When they want to work on a new language they just write code for it without having to learn the in’s and outs of a new IDE. Would also help to open op the language to others, support code sharing etc.

  2. I think all this is taken care of in the language definitions. Most other languages have oddities like this. If it can handle F# and lambdas this should be pretty standard.

  3. Ideally. I would still expect to compile and debug projects using the XOJO IDE. Command line would be great to have but wouldn’t be required. You could probably feed the results of the debugger into some of the other IDE’s as well.

  4. Let the GUI use XOJO. This part works fine. See how Xamarin works with X-Code to do the same thing.

  5. Yeah this is the tricky part. Ideally you would just want to be able to write “code”. Right now if you look at code files there is a lot of template headers and tags in addition to the code. Having a file format that was more supportive of this workflow would of course be helpful. I suppose some of it could be added at compile time. Other parts would be harder. This is where we’d need XOJO to make some modification. It’s a non trivial ask for sure but one that would probably be feasible. This is where the value proposition has to make sense for them to invest the effort.

to use VS i like more QT the .net vb no works is bad c# is good

  1. As Bob said… Xojo would not have a vested interest (my opinion) is the effort required
  2. see #1
  3. without a command line compiler, you would still need to use the current IDE … not convienent to edit in one app, save, load code into another app to compile (and/or debug)… even less so when remote debugging.
  4. See #3 (not to mention it fragments the project file, the GUI would be in one set of files, and the code (GUI related and “business” would be in another)
  5. “Tricky” is an understatement

My opinion, there is no value. Perhaps someone might write an app that

  • Takes a Project file in Xojo’s current format (XML or VCS)
  • exports it to a “Pure Code” format (doing something with the GUI pieces??)
  • Allows it to be editted with “something else” (Eclipse, UltraEdit, etc)
  • then reverses it back to Xojo format

Possible, but still not seeing any benefit what so ever.