Late this summer, Tom Sawyer Software will release Tom Sawyer Perspectives 10.0. Easily our most ambitious release to date, this version turns many features completely on their heads and offers users a robust, cutting-edge, user-friendly platform for graph and data visualization application development. To set the stage for this exciting event, our CTO Joshua Feingold is sitting down with us for a series of blog posts to explain the major features.
In this first post, Josh looks back at the auspicious beginnings of Perspectives and explains how they have led us to where we are today.
Perspectives Past
Perspectives is a Java SDK for creating low-code data visualization and analytics applications. It was first released in May 2008 (the same year I joined the company) into a very different technology landscape.
Back then, enterprise data was essentially always accessed using SQL. RDF triple stores were (and still are) extremely niche. Systems were starting to provide REST services but were not commonplace. Property graph and NoSQL databases did not exist.
The software development atmosphere was also quite different in those days. JavaScript was in its infancy. Angular and React were years away. GitHub had only been founded a few months earlier. Docker wouldn’t come along until 2013 and Spring Boot a year after that. “Microservices” were a wild new idea that architecture nerds were just starting to talk about. Continuous delivery was a pipe dream. People were building applets. (Applets!)
This reality shaped three tentpole assumptions for Perspectives:
- Data has a rigidly defined schema that a developer can describe on Day One of application development.
- Data is natively tabular and must be interpreted in some way to compose a graph or analyze its connections.
- Anything we build needs to fit elegantly inside of a whole mess of very different monoliths.
Understanding the Scope
What does a low-code graph visualization and analysis SDK look like in that world? With so much uncertainty and so much yet to be invented, Perspectives defined its responsibilities as:
- Moving data to and from databases—generally for development purposes since nearly all apps at the time already had their own custom data layer.
- Processing that data via topological mapping and algorithms.
- Creating embeddable view widgets for users to evaluate and modify their data.
This was a pretty reasonable scope. We absolutely added value with every one of those functions. And our adopters were very happy to have a visual IDE where they could develop these types of features without heavy compile times or tedious API-level debugging. Early on, our users were also happy that we were stalwartly indifferent regarding application delivery. You could embed Perspectives in a thick client Java application or applet. With Perspectives 2.0, you could even embed a web rendering in your WAR-based server application.
Mapping the Perspectives Future
As time and technology advanced, so did Perspectives. We added new features, new database integrations, new algorithms. Things users liked and things we were proud of.
But over the last few years, we too often found ourselves saying “that would be cool, but it’s not what we do.” And you want some of that. You want people to be creative and ambitious and push boundaries. You want management to rein that in a bit if it distracts from the mission. That tension drives innovation. But the balance was off. We were thinking it too much. Our tentpoles weren’t just holding us up. They were holding us back.
When I became CTO in 2020, there was a natural point of inflection. An opportunity to ask ourselves big scary questions. I had the benefit of a decade of working on the product itself and directly with customers. And the benefit of a decade of the technological tide rising beneath us. Tens of thousands of conversations with our own engineers and managers, customers we won, and evaluators we lost. Countless conferences and YouTube videos and Baeldung articles and StacksOverflown. A galaxy of ideas from which I sought to document a constellation of 40 interconnected major projects that would improve and expand what Perspectives was and could yet be.
And we’ve spent most of last year refining and revising and pivoting and planning and executing. And starting with Perspectives 10.0, the rest of the world gets to see what we have been up to. The first phase of it at least.
Knocking Down Tentpoles
Our first two basic assumptions about enterprise data were that it tends to be well-defined and tabular. Perspectives had always asked users to know what their data looks like, and we patterned many workflows around tabular paradigms. If our assumptions were true for you, which they generally were for most users for many years, the experience was great. But if they weren’t, getting started was harder than we wanted it to be, and the growth of graph databases meant that a larger proportion of new users were stuck on this rougher road.
Starting with Perspectives 10.0, we’ve fixed this. If you have a SQL database, you get to keep the tailored experience we’ve always provided. But if you are working in a schemaless world, you are also invited down the red carpet. Schemas are optional, and all data is assumed to be natively graph-like. Of course, schemas are still extremely useful in production contexts. And a well-indexed graph that has no edges behaves an awful lot like a table. But upending these paradigms opened a lot of doors for rapidly developing applications against graph databases, even when they contain extremely heterogeneous data. In fact, we can connect to basically any modern graph database, write a query, and have some live data views to show for it in under two minutes. (Austris Krastins, our Senior Technical Design Director, timed himself.)
New Perspectives Features
Perspectives 10.0 is packed to the gills with new goodies, so keep your eyes on this space for:
- Graph model schemas
- Graph model tools
- Dynamic data binding
- Dynamic domains
- Dynamic inspectors
- Schema code generator
- REST services
- Simplified actions framework
Ready to get started with Perspectives now? Request a FREE 60-day evaluation! You’ll receive our software with complete product documentation. We also offer consulting and training during the evaluation to ensure a smooth and successful experience.
Or reach out to us. We’re ready to tailor our products and services to meet your development needs.
About the Author
Joshua Feingold is the Chief Technology Officer at Tom Sawyer Software. He's a Software Architect with experience providing solutions for customers across the spectrum of public and private, large and small, and technical and conceptual. He brings curiosity, an open mind, and a strong background in mathematics, engineering, software, and social and physical sciences to bear on the hardest problems facing modern organizations. He holds a Bachelor of Science in Mechanical Engineering from Caltech.
Submit a Comment