-
Notifications
You must be signed in to change notification settings - Fork 171
Ideas List for GSoC 2018
We already have a REPL similar to Ruby's irb
. But there're some bugs to fix.
We also would like to implement some more features, like auto-completion, syntax highlight etc.
Required Skill:
- Basic knowledge about Golang
You can get how Goby's REPL
igb
works by reading manual-test script
Mentor: @st0012, @hachi8833
We have a plan to implement a basic mechanism to support third-party libraries. For this, we need a sophisticated tool for managing libraries, like bundler
for Ruby, npm
for nodejs. But implementing the basic require
mechanism has not finished and we should determine the scope of the task first. Whether we include features for dependency resolving and version control depends on our development progress.
Required Skill:
- Basic knowledge about Golang
- Knowing how
Ruby
'srequire
method works.
Mentor: @st0012
We should optimize Goby's memory handling for production use. Before we start any internal optimizations, we need a feature for profiling memory usage first. This can help us do the right decision for language design by profiling every minimum viable implementations. Fortunately, Golang has a builtin pprof
tool that can help us on it, so what we just need is to figure out how we include it into Goby and to build an easy-to-use interface.
Required Skill:
- Intermediate knowledge about Golang.
- Having experience about using
pprof
is a big plus
Mentor: @st0012, @saveriomiroddi
Depending on the number of superclasses of current object, looking-up a method
or a constant
can be time-consuming. To solve this problem, Goby should equip a mechanism to cache the lookup results, which can help skip the lookup process and use the cached method/constant directly when they are called next time.
Required Skill:
- Basic knowledge about Golang
- Knowing how does Ruby perform constant/method lookup (highly recommend
Ruby under a microscope
for this topic)
Mentor: @st0012, @Maxwell-Alexius
Goby has an awesome feature called Plugin System
, which lets users include Golang programs dynamically. Our demo site uses this for interacting with Postgresql by just calling Golang's packages.
And our next goal is to provide a way to integrate Go packages easily with Goby programs, without setting up Go's environment manually.
Required Skill:
- Intermediate knowledge about Golang and its compiler
- Being familiar with linux environment, because
Plugin System
can only work on linux for now
Mentor: @st0012
We need some extensible and sophisticated logging/job queue features for providing and managing web services. For this, first we need a native Time or Timezone class to handle time representations. A Prototype of Time class.
Required Skill:
- Basic knowledge about Golang
- Having experience using Ruby's
Time
andDate
class
Mentor: @st0012, @hachi8833, @saveriomiroddi
It would be great and helpful if Goby has a parser class like Ruby's Ripper class. The parser can help inspect Goby programs' behaviors by Rubyists or other language creators.
Required Skill:
- Basic knowledge about Golang
- Knowing how a LALR parser works
Mentor: @st0012, @Maxwell-Alexius
Goby
is still very young and there's plenty of features you can add or improve. We look forward to see your ideas that can make Goby
better!