What do you think of the new framework?

Like anybody, I do not really like change. Routine is so cosy. Why change things I have been doing for the last 10 years ?

There are two ways to deal with change, though : grouchy conservatism and good will adaptation. I do not see the point of still btch after the Xojo IDE, when indeed, it is here, won’t go away and, pardon me, is appreciated by many. I am among them. Yes, I have been programming in RB since 2002, but I do enjoy the Xojo IDE.

I find the attitude of “if I can’t get my way, I’ll go for the other side” immature and posturing. We always have the option to go for another development tool, and do not need a full theatrical to do so. I personally use Visual Studio to create apps for the Windows Store, as Xojo cannot, but that is not cause for blaming it. I learn Swift to be able to print and use a data grid that Xojo iOS cannot provide. Not a big deal. At any time a good craftsman can change tool without making a scene.

Xojo is a company that develop programs, just like any of us. Each of us makes choices creating our apps, that may or may not please the user. That is our privilege. It may or may not be a good idea, and it will eventually cost us market share, or, on the contrary, be a factor of success. Why deny that to Xojo ?

They are decent enough to listen to suggestions, I have verified that with many feature requests I filed that were implemented. They seek input in threads like this one, and recently for instance, made available Console separately upon suggestions in the forum. I’ll say that is pretty nice. Sure, if it were MY software company, I would probably make other choices. But it is not. Xojo is one of my suppliers I have been happy with for years. If I cease to profit from that relationship, I will end it. But in the meantime, I might as well enjoy what it brings.

Xojo iOS may not be everything for everybody. But for me, it is quite a nice piece of software that I intend to use to produce great programs.

I think the issue comes down to what throws an exception and what doesn’t. Some things are worth of an exception. Database errors, Input/Output streams failing, Folderitem delete failures, those are okay to throw an exception because it’s a catastrophic failure. Anything that’s dependent upon those will fail.

Conversion routines. Gosh, never in my 15 years have I given a rats ass if I have a blank string when converting to an integer. That IS NOT a throwable error. If I care I manually check the value of the string beforehand. I am not convinced, in any way, that those are throwable exceptions.

Could it result in errors? Yes, absolutely. But at what point is it up to me to figure that out? Xojo is not responsible for my code nor should they be. They provide the tool but it’s up to me to build the application.

I am saying

  1. FOR ALL NUMERIC types trailing characters should be ignored as previously discussed which is how Value works now. This takes care of units and a lot of other situations encountered in real life coding and would make code conversion to the new framework easier easier.

  2. FOR CURRENCY, because money has a definite format it would be nice if a single character leading money sign appropriate to the local be OPTIONALLY allowed.

Point 1 is by far bigger deal in general, and 2 a nice to have but not as important but something that could help the new framework be more helpful.

-Karen

[quote=151855:@Bob Keeney]Conversion routines. Gosh, never in my 15 years have I given a rats !@#$% if I have a blank string when converting to an integer. That IS NOT a throwable error. If I care I manually check the value of the string beforehand. I am not convinced, in any way, that those are throwable exceptions.

[/quote]

I agree with that as well.

Some other random thoughts.

I like Auto instead of Variants. I’ve fixed way too issues in other peoples projects from too much use of Variants. This solves real problems.

I like the new Text. It will take some time getting used to it - especially with MemoryBlocks now - but it solves real problems.

I really don’t like the Simple References option in the Build Settings. A Dictionary is not a Dictionary. One is a Dictionary and one is a Xojo.Core.Dictionary. I found myself using the full resolved names in the 4 1/2 hours of video I’ve done in iOS to keep things straight for me (and hopefully the viewer). Simple References creates confusion. I’d rather see it go away than stay.

Someone, Karen I think, brought up the issue of ‘fun’. Exceptions are not fun. It takes multiple extra steps to handle them properly. That is not fun. Xojo and the language has been pretty fun to use over the years and while I agree with some of the changes others aren’t fun.

Again I agree. IMO Exceptions should be restricted to definite errors. Converting strings to numbers really does not fall into that category IMO.

  • karen

+10. I can understand the flow of my code a lot better if it is not littered with a bunch Try-Catch blocks all over the place to keep me from doing things I am not supposed to do. Reminds me of OOP, and how some people forget, that while it is certainly a great programming methodology, it is not the right fit in every circumstance.

my £0.02

I’ve always thought we should be able to do things like

string.replaces(alphachars,"")
that would replace all the alpha chars in the string,

so you could do

dim s as string = “£23.75/each”

dim v as currency = s.replaces(alphachars,"").tocurrency

and get 23.75 back

and allow us to create named sets of values that we want to use

then these could also work with an IN keyword too

[quote=151857:@Karen Atkocius]2) FOR CURRENCY, because money has a definite format it would be nice if a single character leading money sign appropriate to the local be OPTIONALLY allowed.

[/quote]

I don’t use currency… Just checked the docs… It already allows the money sign and such… It just does not alls trailing characters/

so now just let all the Base10 numeric datatypes from FromText methods ignore trailing characters and I (and I suspect many others) will be happier. (Does not make sense for binary octal, hex etc)

Return 0 instead of throwing exceptions and I (as well as Bob) would be even happier! :wink:

The extra “safety” you are enforcing here is not worth the cost for many (most?) of us/

  • Karen

As far as conversion, I’ve seen both sides. Sometimes you want to ignore trailing characters, and sometimes they’re an error. Would it be possible to have that as an option?

We had this discussion all the way through alphas & betas- months before now

And if memory serves many folks on the alpha’s and beta’s pitched a fit (like this discussion). Irrational or not, the framework affects how Xojo is perceived.

There are things we will get used to and like over time. Some will just be source of irritation that won’t go away.

I actually like the new framework and have been writing wrappers for the old framework so I can use one global API: the new one.

Nothing stops anyone from writing a Val() method. I know Michel recently posted some code that provided many of the old functions. That’s the beauty of programming, you can just add to it! The core constructs of the language have not changed. You are not inhibited from making it more like old RB if you want too.

You could even go so far as to write an IDE that looks like the old one, pump out XML code and compile it with Xojo. The fact that no one has means its not as big of an issue as it sounds.

My fear for those who are unwilling to adapt is they are locking themselves into a corner professionally. The future is moving towards fragmentation across devices, javascript, various interpreters, containers, Linux variants. Xojo and .NET/Xamarin are the only two things I can see that are trying to unify all this chaos in some kind of uniform way. In my mind Xojo does a better job of it despite .NET being more powerful in certain aspects.

Don’t be afraid of new syntax’s or change. All of you have who have taught yourself Xojo can learn Javascript and C#. I know you can learn the new framework. If you don’t need it and don’t need the changes coming from Xojo then don’t upgrade. What’s the harm?

But if you want to be on the latest devices supporting consumers using the latest and greatest then you too will have to be on the edge.

It not new syntax it that it’s making things more work and less fun. Lots of people who use Xojo are not professional programmers. There main job is as engineers, scientists or do really any sort of work…

They find Xojo lets them create useful apps that help them and their coworkers in their jobs. they do it because Xojo is easy and approachable and they don’t have to spend a lot of time on formalities… BASICALLY (pun intended) because is a an easy intuitive (even for many non programers ) RAD environment.

And those things benefit Pros too… At least those that don’t need to prove how macho they are by writing cryptic C code!

It’s not that they can’t learn, it’s that all of this type of stuff stuff just gets in the way of quickly doing what the want to get done.

The way the new framework is going it seems to be geared to those with more IT training rather than being “the IDE for the Rest Of us”

And that is the problem.

  • Karen

Something to keep in mind with the new frame work is that its not an attempt to solve a single problem.
Its designed to solve a LOT of issues that we’ve all encountered over the years.

  1. Make it easier to write correct code quicker
  2. Make it so when we add something to the language we DONT clobber YOUR existing projects by simply co-opting whatever name we think sounds right. Any one count how many instances of “Label” they had in their code when that change happened ?
  3. Make it so error handling was more consistent - I can think of at least 4 different mechanisms in the old framework
  4. deal with multiple platforms and their differences in a reasonably consistent way

If all you look at is functions (val etc) then the new framework maybe doesn’t make a lot of sense.
That seems to be what people are focused on.
When you take into account all the goals you end up with something like what we have
Why ?

  1. error handling is something that is usually ignored or not thought of at all - and we get a fair number of bug reports because of this. So we want to make sure you CAN write correct code as quickly as possible. (Val returning 0 is a very common one as is a sql query returning a nil recordset NOT being checked) just tweaking a few method signatures isn’t going to fix this.

  2. in order to NOT clobber your projects every time we introduce something new we need a names. That way any new controls live in that namespace. Otherwise we just take over whatever names in the global namespace we want and you have no option. Now we do. Label is a great example. And there have been a few others over the years.

  3. serial & folderitems use error codes
    xml uses exceptions
    sql uses error codes and some exceptions
    Knowing how to deal with error conditions in your code is so inconsistent currently that making it consistent, even though more wordy at ht moment, can only make it easier to write code that deals with the error conditions properly.

  4. Having a core framework that works every where and then other aspects that only work on platforms specific basis is currently done in several ways. Some control have properties/events/methods that only work on OS X or Windows or Linux. Some classes are only supported on one platform. But you cant know that by using them without reading the documentation usually somewhat thoroughly. With things namespaced we can have a listbox for Desktop that is different than the one for Web and different than the one for iOS. Common aspects could be on all three but platform specific bits can be determined with autocompletion. They could literally be subclasses on a platform specific basis for each target of some common superclass. We can’t do this if everything is in the global name space.

And these issues aren’t ones we just made up.
They been reported over & over & over through out my 15+ years of using RealBasic/ Xojo.
By people new to the language & people who have used it for many many years.
So now we’re trying to address them and that does mean things change.

[quote=151922:@Karen Atkocius]The way the new framework is going it seems to be geared to those with more IT training rather than being “the IDE for the Rest Of us”

And that is the problem.[/quote]

Ahh well you see there never was an “IDE for the rest of us”. It’s just that the mechanics of desktop development was simple enough that Xojo could make it easy enough. It was still always the same programming. You just outsourced some of the heavy lifting to Xojo in exchange for a license fee.

The magic here is that you can still use the old framework for years to come AND upgrade. WOW! That’s almost Microsoft-like in its commitment to old ideas. So what’s the problem?

Only one I can see:
Some want iOS to be just as easy as Desktop. I’ve written apps for iOS in at least 10 different tools. None of them are as easy as Mac/Windows development with or without Xojo.

Want to know why? Emulating a device sucks, the device is a moving target (yearly releases), different sizes, OS fragmentation, mobile constraints, memory constraints, heavy dependence of web services, sandbox restrictions, etc.

Also the underlying operating system makes different assumptions because Apple like Xojo realized that iOS was an opportunity to fix things that were fundamentally bad like string.

Karen your case is unique in a way. You are advocating on behalf of non-programmers but this is a programming tool. I don’t complain to Peterbilt for selling me a semi when all I really needed was a sedan.

Also after doing ConvertTextToData and ConvertDataToText a few hundred times I now WANT to do it. When I use the old framework and I’m wondering what absurd magic is going on behind the scenes I actually feel a little scared.

The new framework is actually giving you more control.

Not non programers… a different type of programmer with a different emphasis. I suspect there are more of them using Xojo than of those like you… that certainly was the case for VB pre .net. And it is those types of programmers I’m talking about. We don’t have computer science background but we still code. That is what I mean by “the rest of us”… More than hobbyists really but not quite “Pros” either.

Believe me I have written a LOT of code over the years in various languages (though nothing C like). While It has never been my official job I have done it on every job I’ve ever had. In one case I single handedly added major new functionality to a commercial Laboratory Information Management System (LIMS) package. After I gave a presentation on what I did at a user group meeting the LIMS vendor got a bunch of requests for it from companies who wanted it!

When I worked for bigger companies there were a number of people like me doing some coding though that was not their job… Yes it’s more prevalent among science and engineering types, but not limited to them. Being able to code is just one tool in our profession tool chest. It’s not the main one but is a significant one

For myself I don’t need iOS now. What I am concerned about is where Xojo is headed in the long term because it will affect the desktop… I certainly don’t want to write code (and I try to write reusable code as often as I can) that will be obsolete in a few years so the fact that the old framework will stay around awhile does not exactly cheer me up! After all I renewed my license all the way to 2020!!!

“Try them, try them, and you may! Try them and you may, I say.”
? Dr. Seuss, Green Eggs and Ham

I respect everything you are saying. I am just afraid at the rate of mobile/desktop change and the industry in general that your desire is no longer possible. Desktops were mostly stagnant for a decade. Being in a mobile world requires a very different mindset.

Xojo simply cannot compete in the mobile cloud first world if they are not willing to change some aspects of a 15+ year old framework. The fact that they are willing to leave (and even in some cases improve) the old framework for 5+ years is outstanding.

I literally cannot see a reason to question the new framework at this time, especially if you do not need iOS. Especially considering you can write helper methods that do most everything you could do. You just have to provide the assumptions the conversion methods make as Xojo is no longer willing to make those assumptions for you.