I’ve been waiting patiently (years honestly) for Xojo to give us a better way to share code between projects and between people. For years this was going to be through plugins written in Xojo but that got canned in favour of Xojo Libraries. These have now been on the roadmap for quite some time but never seem to percolate to release.
Xojo really needs some sort of package manager if it is ever going to grow its user base.
I spend most of my time writing open source code but it is becoming increasingly difficult to do so because I end up having to bundle various modules with different open source projects, duplicating my work and making it confusing for new users to get up and running with my projects.
I’m quite happy to write some sort of open source package manager or web-based package repository for Xojo in my own free time but it requires standardisation. The obvious way to do this is to host Xojo Libraries if they ever become something other than vapourware.
I’ve toyed with creating a package manager for years but have never done so because there hasn’t been a decent way to bundle up code.
Could we as a community get some feedback from Xojo (or @Geoff_Perlman himself) about Xojo Libraries please? My plan is to build a package manager for the community around them once they launch.
Does anyone have any thoughts about this or code reuse in the community in general?
I’ve been pushing for this for a very long time as well (at least 15 years). Both publicly and privately as an MVP. It’s necessary for a variety of reasons, all of which Xojo recognizes. I’m confident we’ll see this soon(ish), but don’t have any details about its implementation or timeframe that I can share.
I was shown how this was done sometime around 2008. I subsequently had to change my business model to no longer distribute encrypted source code. My products at the time ended up on a bunch of piracy sites just from someone decrypting the encrypted demo. I do not trust simple encryption in the IDE because it has to be decrypted at some point in order to be compiled and that means it can be extracted by anyone willing to put in the work.
There’s never just one reason a tool becomes popular / useful but if you look at some of the most successful (such as Python and Ruby which don’t have big name backers) a common feature is a very easy way to share and reuse code. This is something that Xojo is absolutely awful at.
I’m happy to have a crack at helping the community in this area (Microsoft’s Nuget started as a small project by an indie developer) but something like the Libraries functionality is required to be implemented by Xojo Inc before as currently there just isn’t a good foundation to build on.
Agreed. That’s just plain source code with a “import” clause in the language that causes what you are saying. Xojo Libraries is not that, it is the inverse. It is a kind of vault of reusable and unreadable code. It’s more in the reign of plugins than code. Kind of Encrypted Modules. Not a thing we see in the repos that make such languages popular and that people can read the code right from their place in a github repo. What you want is another thing.
But it is easiert to put YEARS of work into the idea of one or very few people that cant think on all the posibilities. When the beta finally arrives with a LOT of bugs and shorcommings “It is too late for changes”
Sure. Even for compiled code. But to make the life of a hacker hard, there’s a way. Encrypted modules could be saved in a unreadable by humans dialect (like many compilers and interpreters did in the past with p-codes) so inspecting the memory after load someone will see just garbage. The “translate back to text” should occur just on demand and using the proper user key, and then, this version will show up. The compiler will read and understand both, the binary blocks version, and the textual blocks version. That’s a fix until someone with lots of time and nothing to do in life tries for months to understand and decode what’s going on and catalog such binary dialect.