Editing User:Lk

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 48: Line 48:
== Y: Your task ==
== Y: Your task ==
* Did you select a task from our list of proposals and ideas?
* Did you select a task from our list of proposals and ideas?
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. <br />Yes, I selected the [https://wiki.octave.org/Summer_of_Code_-_Getting_Started#JSON_encoding.2Fdecoding JSON encoding/decoding] project. I have used JSON files in data analysis and visualization projects in the past, and I think that Octave needs to have JSON integration to succeed as a widespread computational language. [[#Proposal]] for reference.
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. <br />Yes, I selected the [https://wiki.octave.org/Summer_of_Code_-_Getting_Started#JSON_encoding.2Fdecoding JSON encoding/decoding] project. I have used JSON files in data analysis and visualization projects in the past, and I think that Octave needs to have JSON integration to succeed as a widespread computational language. [[Proposal]] for reference.
* Please provide a rough estimated timeline for your work on the task. <br />  
* Please provide a rough estimated timeline for your work on the task. <br />  
{| class="wikitable" style="margin-left:30px;"
{| class="wikitable" style="margin-left:30px;"
Line 85: Line 85:
|Final Results
|Final Results
|}
|}
== Proposal ==
=== [https://savannah.gnu.org/bugs/?53100 Bug #53100] ===
*Introduction<br />Following Matlab's introduction of jsondecode(string) and jsonencode(string) in early February, a feature request was made to create similar functions in Octave. The proposed functions would allow users to easily work with JSON formatted strings in Octave, inputting and outputting JSON files, respectively.
*Imperfections
**Due to an abundance of cpp parser libraries, different ones with different implementations have been selected and implemented separately by various contributors.
**"jsonstuff .. doesn't cover more general or flexible JSON handling, or persisting of arbitrary Matlab data structures to JSON"
*** no intention of further extension so as to match base Matlab
***As of February 2020, "it's about feature-complete, but it's not Fast (because some stuff is still in the M-code layer, that should be down at the C++ oct-file layer)".
**jsonlab is looking to be more robust than jsonstuff, implemented as a specialized package that works with both Octave and Matlab rather than a part of base Octave.
***also works with UBJSON/MessagePack (different filetypes for different use cases)
**rapidjson is not aiming to create an equivalence to Matlab's jsonencode/jsondecode, instead creating new data types and functions to aid in working with JSON files.
**I was not able to find much information about JSONio's deficiencies.
=== Contribution ===
All of these packages were written by individuals who see their work's strengths because they have naturally created a product that works well for their needs. To implement a feature into Octave core, however, it must work well in a considerably more extensive range of applications. A third party should analyze in-depth which implementation makes the most sense to bring into Octave core and work with the contributor to do so. Some contributors expressed in the Bug #53100 forum that they find themselves lacking the time to finalize their implementations, as is the nature of open-source work. Thus, dedicating my summer, I could help finally bring fluid JSON interoperability to Octave.
[[Category: Summer of Code]]
[[Category: Summer of Code]]
Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)