Thread: The Toast API
View Single Post
  #3   Spotlight this post!  
Unread 03-06-2015, 03:20
Jaci's Avatar
Jaci Jaci is online now
Registered User
AKA: Jaci R Brunning
FRC #5333 (Can't C# | OpenRIO)
Team Role: Mentor
 
Join Date: Jan 2015
Rookie Year: 2015
Location: Perth, Western Australia
Posts: 253
Jaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond repute
Re: The Toast API

Quote:
Originally Posted by Colby Skeggs View Post
Nice job! This looks very useful - especially the module system.

How does this framework compare to other frameworks, such as pyfrc or the CCRE?
Hey there! Thanks for the interest c:

As for the comparison, between pyfrc and Toast is a pretty significant difference, namely language choice and runtime environment. The JVM exposes a lot of opportunities that aren't just limited to Java, in fact a Python interpreter could be implemented in less than a few hours due to the Jython runtime environment, while still providing the hooks necessary for WPI and Toast's inner workings without rewriting WPILib from scratch. This also has the added benefit of the features of Toast and any external modules also loaded.

As for CCRE, I can't say I've seen it around before (I'm a rookie this year), but after glancing over the docs I'll try my best to summarize. Toast is designed more as an addon rather than a framework, but has some necessary framework features that are necessary to have it work the way it does. I noticed CCRE's implementation of the 'Igneous' system, which seems really awesome. With Toast, however, we package WPILib and most of the code for interacting with I/O is done through WPILib's included calls. The philosophy behind this is to make programming as familiar and easy for new users so they 'don't have to learn another framework'. It also makes it easier for non-toast teams to help them out. Toast, at it's core, is a module loader. We just so happen to include a bunch of other utilities that can be useful for people who want to use them. Most of these utilities ensure that modules are treated in a modular way, instead of the WPILib single-instance way. At heart, it's a "Easy to get started with, while still remaining powerful for those who need it" framework.

If you want a less general statement, I'll be glad to point you to the current version of the Toast Whitepaper. I hope I've been of some help, if you need anything I'd be happy to help
Reply With Quote