検索

ディスカッション
· 2025年11月14日

Proposal: Creating an Open Source Support Foundation for the InterSystems Ecosystem

Over the past several years, the InterSystems Developer Community has accumulated more than 1,000 open-source projects. Many of them serve as examples and learning materials — but a significant number have become useful tools, libraries, integrations, and real-world components used in production.

Some of these projects are mine, and like many community developers, I’ve seen the same recurring problem:

  • It’s easy to create an open-source project.
  • It’s hard to maintain, support, and develop it sustainably — especially without funding.

Writing code is one thing.
Supporting it for years, keeping up with new IRIS versions, building CI pipelines, writing documentation, fixing issues, reviewing PRs — all of this demands both time and motivation, and the biggest motivator is often financial support.

This is not a new challenge.
The global open-source world has faced this for decades and has developed various models to support OSS ecosystems.

I believe it’s time for the InterSystems community to start a discussion about adopting a similar model.


🎯 The Opportunity for InterSystems and Its Community

InterSystems technologies power mission-critical systems in healthcare, finance, government, logistics, and more. The developer ecosystem around IRIS continues to grow, and open-source tools play a significant role:

  • ORMs and connectors
  • CI/CD integrations
  • SQL and interoperability tooling
  • Development frameworks
  • Custom VSCode extensions
  • Integration adapters
  • Testing utilities
  • Community SDKs
  • Example apps evolving into real libraries

Many of these tools are widely used but maintained by individuals in their spare time.
This limits their long-term stability and slows down ecosystem innovation.

InterSystems and its customers benefit greatly from these projects — but there is no central way to fund them or support their maintainers.


🏛 Proposal: Establish an Open Source Foundation for InterSystems-Related Projects

Similar to foundations in other ecosystems, we could create an independent or semi-independent structure that would:

1. Collect Funding

  • Donations from companies using InterSystems technologies
  • Contributions from InterSystems itself
  • Sponsorships from partners
  • Community donations

2. Allocate Funding

  • Small grants for library maintenance
  • Bounties for features and bug fixes
  • Program-based funding (e.g., “Strategic Libraries Program”)
  • Long-term sponsorship for critical OSS projects

3. Provide Organizational and Technical Governance

  • Assistance with licensing, documentation, and governance
  • Shared CI infrastructure
  • Security audits
  • Help with onboarding additional maintainers

4. Promote High-Quality OSS Projects

  • A curated list of “Supported Community Libraries”
  • Recognition programs
  • Best practices and standards for development

5. Increase Engagement from InterSystems Customers

  • Many enterprise users rely on community tools
  • Funding these tools benefits everyone in the ecosystem

This would bring structure, sustainability, and motivation to developers who invest time in building tools that help the entire InterSystems world move forward.


📊 How Other Ecosystems Solve This Problem (Short Comparison)

Foundation / Model What They Support How They Fund It Applicability to InterSystems
Apache Software Foundation Hundreds of large projects (Hadoop, Spark, Kafka) Corporate sponsors, donations Strong governance example, but very heavyweight
Python Software Foundation (PSF) Python tools, packaging, events Memberships, corporate sponsors Great model for language-centric ecosystems
Linux Foundation Kernel, CNCF, Kubernetes, etc. Corporate funding, governing boards Too large-scale, but offers good structural inspiration
OpenJS Foundation Node.js, JS tooling Corporate members Example of supporting developer tools & libraries
Rust Foundation Language, tooling, compiler Corporate supporters, grants Modern, transparent, focused — a good reference
OpenCollective / GitHub Sponsors Individual or small OSS projects Direct crowdfunding Could be a starting point for InterSystems projects

Most of these ecosystems recognized early that OSS maintainers need support — not just enthusiasm.

InterSystems could take inspiration from these models to build something proportional to the size and needs of its own ecosystem.


🤝 Call for Community Discussion

This is not a final solution — it is a proposal to start a broader conversation.

Questions for the community:

  • Would an InterSystems OSS Foundation be beneficial?
  • What role should InterSystems officially play?
  • How can customers contribute?
  • Which projects deserve priority funding?
  • Should this be an official foundation or a community-driven initiative?
  • Should we start with a simple OpenCollective group as a pilot?

I believe this conversation is important for the long-term health and growth of the InterSystems developer ecosystem.

7 Comments
ディスカッション (7)5
続けるにはログインするか新規登録を行ってください
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2025年11月14日 3m read

PEP 8入門

img

この記事では、PythonスタイルガイドであるPEP 8について簡単に紹介します。

PEP 8とは?

簡単に言うと、PEP 8は、Pythonコードの書き方に関するガイドラインとベストプラクティスを提供します。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
質問
· 2025年11月13日

Business Services limit

Hi guys,

Is it bad to have too many Business Services in a production and what's the limit, I'm looking to convert our system tasks (around 30 of them) into Business Services and wondering if it's a better option?

 

Thanks

2 Comments
ディスカッション (2)2
続けるにはログインするか新規登録を行ってください
記事
· 2025年11月13日 2m read

Sobre a exportação de globals mapeados

Rubrica de FAQ da InterSystems

Ao exportar usando o método Export() da classe %Library.Global, se o formato de exportação (quarto argumento: OutputFormat) for definido como 7, "Block format/Caché block format (%GOF)", os globais mapeados não podem ser exportados (apenas os globais no banco de dados global padrão do namespace são exportados). Para exportar globais mapeados no formato "Block format/Caché block format (%GOF)", especifique o diretório do banco de dados para o qual você deseja mapeá-los no primeiro parâmetro de %Library.Global.Export().

Um exemplo de execução é mostrado abaixo:

 set DB = "^^c:\InterSystems\Cache\Mgr\Test\"  ; "^^\<path to database folder>\"
 set sc = ##class(%Library.Global).Export(DB,"TESTGBL.gbl",FULLPATH,7,,"")

Se você especificar o formato de exportação como 5 (padrão), "ISM/ObjectScript format (ISM/Cache format) (*)", você também pode exportar globais mapeados. No entanto, o arquivo de saída será maior do que se você definir o formato de exportação (quarto argumento: OutputFormat) como 7, "Block format/Caché block format (%GOF)".

Além disso, se dados binários forem registrados no global, esses dados não serão exibidos corretamente.

Para obter mais informações, consulte a seguinte documentação:
Class Reference: %Library.Global.Export() [IRIS]
Class Reference: %Library.Global.Export()

[Nota]

Globais que contêm o formato $LIST ou caracteres de controle não podem ser exportados corretamente com o formato de exportação padrão de 5 (ISM/ObjectScript format (ISM/Cache format) (*)). Neste caso, você deve exportar banco de dados por banco de dados com o formato de exportação (quarto argumento: OutputFormat) definido como 7 (Block format/Caché block format (%GOF)).

* Formato de arquivo sequencial

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください