Visual Studio as an IDE for XOJO

[quote=387438:@Bob Keeney]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.[/quote]

I beg to differ. The Xojo search and replace is the oddest contraption I’ve ever seen. You can’t even replace all occurrences in selected text.

Actually, you can now.

Bring up the Find pane and note that there are three scopes to choose from. Select some text and there are now four scopes, with “selected text” being the fourth.

I really wasn’t trying to start a conversation where people felt the need to defend the XOJO IDE. Like I said at the outset, there is a lot of good.

That said there are key things it does not do. The biggest issues to me are:
Code share challenges: Inability to make modules external / can not compile libraries.
Live Code/Syntax highlighting: Huge time saver

My thought was why not see if theres a way to leverage some of whats great in VS. Noting has to change with the core XOJO IDE. And yes you can tell me about work arounds and things that are some measure of the above. Having used both tools in professional/team settings VS offers a lot of things I personally find useful. Not saying anyone else has to do it that way but the reality is for me using Xojo requires I sacrifice certain efficiencies I gain with other IDE’s. I still make the decision to use it, and pay for my renewal. That said there may come a time when that tradeoff is less obvious. If you look at what .NET core has become it’s becoming an increasingly attractive option for X platform development. To be competitive Xojo should ensure that they do enough to court developers of all levels. That’s just my .02.

Please expand?
Code share challenges: Inability to make modules external / can not compile libraries.
Live Code/Syntax highlighting: Huge time saver

Xojo has the ability to create/export code modules, which can be imported into other projects… Unfortunatly what it does not do, and is probably where you are going, is that the IMPORT creates a “copy”, and not a “link” to the exported file… meaning that changing it in one does not create a live change in the other project… It is really just a glorified “cut/paste”

As to Syntax highlighting, please explain how/why you do not think its “live”… the color is changed “live” as you type, and the context of the words change… Are you thinking of something else???

Code share: Yeah you got it. If I make a change to a module I need to save and reimport it into all my projects. Not really useful in a big project. I have probably 2 dozen modules each with dozens of classes so keeping track of changes would be a challenge. Being able to link to these would be a huge improvement. Alternatively being able to compile modules to dll/dylibs would also be a good alternative. Would also be nice to be able to have “library projects” where the project type was not an application but a supporting library. These are things that most of other languages embrace and I feel are hugely impactful for large projects.

Code highlighting: I Should have been cleared. Yes it does do keyword highlighting. What it does not do is realtime evaluation of lines fo code. It does not parse it and say you are assigning an Int to a string or your method construction is invalid because you’re only passing in two parameters instead of three. The is only provided when the debugger is run. This is the single biggest efficiency you gain from some of the other solutions I mentioned. Having to uncover minor syntax issues wastes a lot of time vs seeing the results in real time.

Hi Dave,

I swore I would never post again, but your comment threw me. I assume you know that you can just right click on the imported resource and choose ‘Make External’ then save it to the same location as you imported it from. Then changes are reflected in all projects that use the resource externally.

I am currently working on a compiler and linker for an in house script language and I use external resources across all the components.

TC

Please educate me then… I tested exactly that scenario before I posted what I did… And the changes in one project did not reflect in the other.

Hi Dave,

I’m not sure why it doesn’t work for you but I just tested again with no issue. I created a new app, imported a module used in my main project, right clicked the module and chose make external then saved it again to the original location, I then went back to my main app, made a change in the module and this change was visible in the test app. Works fine for me for both modules and classes that I like to share between projects. The module or class must be external in both projects. The only limitation is that the external module can’t have classes inside it. To get around this just move the classes outside of the module then make the classes external as well…

Regards

TC

PS. If you’re on a Mac I could FaceTime you then share my screen so you could see.

Having classes as part of the module seems like kind of the point of using modules. In order to get the benefits of namespaces the classes need to be in the modules. If I want to share a module I want my classes to come along. Manually adding 100’s of classes as external is a pain unless they are in modules as you have to keep track each time a class is added.

I raised this issue years ago and never got any traction. Again these are things that don’t affect solo or hobbyists as much. When working on a team or with multiple projects that share code it becomes more of an issue.

Hi Julian,

I tend to use modules as a place to share code between projects or segments of larger projects which may be split apart after prototyping. In my style of work I don’t have the need for a lot of classes, so a few really isn’t that painful. I just group the different sections in folders within the IDE to tidy things up.

TC

@Dave S : you need to make sure to have only one project open. I work this way all the time as I find the text format not very useful for sharing code between projects.

In my latest project, I find myself needing to use a lot of Xojo and JavaScript. Right now I’m doing Xojo in Xojo, and Javascript in BBEdit and using Safari (or IE11) developer mode for debugging.

There’s no way to edit JavaScript inside Xojo (or conversely, to edit Xojo in BBEdit) is there? Having to mentally switch between two editors is frustrating.

[quote=387360:@Michel Bujardet]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 ?[/quote]

Quite simply, while the Xojo framework is not bad, the Xojo IDE is an embarrassment, particularly on the Windows platform. I use it for cross-platform and web application development but spend 70% of my time in VS (Windows is my main platform) and I can say with confidence that the VS IDE is worlds better in terms of stability, ease of use and functionality. i don’t think the OP was saying that the Xojo philosophy should be changed to that of VS, just that the VS IDE would make a great Xojo editor and I completely agree.

To take it a step further, I would not be offended at all if Xojo didn’t “eat their own dog food” and were to create the IDE for Windows in .NET, one for Mac in Xcode and one for Linux in QT. Heck, it wouldn’t even bother me if they used native controls for each platform requiring me to keep different code bases for each like B4X does. As it is, I have to use so many #Target statements just to make the layout acceptable for each platform for which I compile because if I don’t what looks good on Mac looks off on Windows and vice versa.

For an IDE that has been around since the 90’s I cannot believe how bad the current 2018r1 version is. It seems that with every release Xojo takes three steps forward and two steps back in terms of usability and stability. When you look at the number of bugs (Feedback reports) that have gone unfixed for years or the number of regressions that appear in each new release it makes one wonder why Xojo doesn’t stop adding features until the get the current framework and IDE stabilized. It’s a good concept and a great philosophy but the implementation needs a lot of work. I like it, I use it and will continue to renew my license but it definitely needs an overhaul.

TL;DR: Improve useability by allowing VS (Code) to be used as an editor for Xojo code until the current IDE is fixed and (mostly) bug free or remake the editor in each platform’s native languages to take advantage of the native libraries available to each.

I wasn’t going to say anything, but I sorta feel I have to now.
We use the Xojo IDE full time every day in a team with 6 Xojo developers.
We share code between 7 different projects that are placed in a subversion repository for our team.
I won’t say that the Xojo IDE is perfect, but it does the job for us.
I’ve also done work in other editors (VS, VS CODE, ATOM, BBEdit, Eclipse,…) and can’t say any of them are perfect.
We’ve seen several iterations of the Xojo IDE over the years, and Xojo is aware of the fact that things can be improved.
I’d rather wait for them to improve the Xojo IDE than for them having to support another IDE.
The Xojo team is a small team and they need to use their resources where it will improve the language/ide the most.
They put in an incredible amount of work for such a small team and my personal opinion is that moving to support another IDE would not provide us with the best return on investment for their invested time.
That’s my 2 cents.

That poor IDE has been dissed by innumerable number of people for the most diverse reasons. Some because they could not stomach anything but the older Real Basic IDE. Some others because they have a pet editor the started with, and simply got habits difficult to break and could not find their marks in the current Xojo IDE.

It’s like cars. If one starts with a GM, it becomes very difficult to get accustomed to Ford. And the other way around. Not to mention those who hate anything new.

What’s good about this forum is that it lets people vent :wink:

Giving air to a frustration makes it easier to deal coop with it

I also prefer having everything work technically well and bugfree above being fancy. It’s our deliverables that matter.

@Dirk Cleenwerck The truth is, I agree with you. I don’t think Xojo should put any effort into supporting VS Code as an editor, it’s just a pipe dream. However, I also don’t think Xojo should continue to add platforms such as Android and Web 2.0 until they get the rest of it working correctly. Unless you’ve ever encountered a show-stopping bug it’s hard to sympathize with the “negative nellys” in the group but when you’re having to rewrite or change your code at every other turn just to work around a bug you start to feel the pain of the rest of us.

@Michael Bujardet It has nothing to do with preferring the old Realbasic IDE (I wasn’t a fan of it either) or having a pet IDE that we like better than Xojo’s IDE. It’s about stability, pure and simple. And your analogy to cars is not on point. If someone likes GM over Ford or Dodge or whatever but GM continues to produce new models with engine problems or flaws in the design don’t you think they would complain and insist on them fixing the issue or start looking for a different manufacturer without these problems? What’s wrong with insisting that Xojo put more resources into fixing the existing broken pieces rather that adding new pieces? It’s not venting, it’s holding the maker responsible for producing a good, working product.

It’s easy to assume that all of us complainers do so out of nepotism (i like this product or that product better so let’s support it in Xojo) but the truth is, we expect better from a team that has as much talent as the Xojo development team has. Personally, I don’t dislike the Xojo IDE as a whole but the poor performance and having to reboot every so often to stabilize is beyond frustrating. Please, try to see the complaints and requests for what they are…a call to execellence by the people who buy the product and not unfounded whining. We won’t accept sub-par products from hardware manufacturers so why do we tend to look the other way with software developers? I admit, it baffles me.

What Microsoft is calling VS for Mac is really just a rebranded and re-skinned Xamarin Studios with a few new tools added. It is not a port of the Windows version of VS.

Is ‘Visual Studio for Mac’ Really Visual Studio?

This is true but it has many of the core features I was referencing in my original post. It’s come a long way in the last few years but I won’t pretend is has parity with VS Mac. I was just pointing out that they have cross platform solutions that share things like intellisense, nugget packages, etc.

Bit disappointed that most of the thread is focused on defending the current IDE. I originally stated I wasn’t after criticism of the IDE for most people simple that there are missing features compared to other code editors/IDE’s, and one possibility would be to provide alternative IDE support for a subset of power users.

[quote]I’d rather wait for them to improve the Xojo IDE than for them having to support another IDE.
[/quote] Yup me too. That said the two big issues I pointed (real time debugging/highlighting and module based code share) haven’t seen any improvement since I started using REAL basic. In that same time the framework has improved DRAMATICALLY, where as the IDE is feels has not improved nearly as much.