YaST is being rewritten in Ruby; Geeko gets a nosejob
For those not intimately familiar with +SUSE and +openSUSE , it bears mentioning what YaST actually is. YaST is
our administrative control panel, composed of numerous modules for
Software Management, User Management, Partitioning, and a variety of
other tasks. It has interfaces implemented with +GTK , +Qt Project , and a
command line interface. The command line interface is particularly
nice in the case that you are running a server without a graphical
environment, or if for some reason your graphical environment is not
working. YaST even powers our very advanced graphical installer,
providing us with power and stability during the install process that
I haven't seen any other distribution able to replicate. WebYaST brings the power of YaST to remote administration, allowing you to
remotely administer your machines from a comfortable web-based
graphical interface.
For a couple of years now I've been
hearing rumors about YaST being switched to +Ruby from the proprietary
YCP language. However, up to recently I haven't stumbled across any
substantiating evidence. Fact of the matter now though is that it is
happening, and the next openSUSE release may even use the new Ruby
based YaST.
Firstly though, why bother? It after
all does work, and quite well for that matter. There are numerous
reasons why this transition is being made. Firstly, YCP is a language
developed explicitly for YaST development, and thus the only people
who know it are YaST developers. This cuts out many people who would
otherwise be able to contribute to it's continued evolution and
maintenance. But why Ruby? Other similar (and inferior in my opinion)
tools are usually written in +Python . Largely this is due to the
simple fact that SUSE has many proficient Ruby developers. But, Ruby
in it's own right is an excellent choice due to it's simplicity,
flexibility, and the rapid development it enables. Also, it bears
mentioning that WebYaST is based on Ruby, and so this would enable
tighter integration and remedy duplication of effort enabling the two
implementations to share more code.
The new Ruby implementation is being
worked on by SUSE developers in Prague. It appears they are using a
code translation scheme as the starting point similar to what +Xamarin used when they rewrote the +Android OS to use Mono. The new code has
already been used to effectively install and administer an
experimental build of openSUSE, and the developers feel confident of
having it ready to begin integration by Milestone 4 of our next
openSUSE release 13.1.
Personally I think this is an excellent
move, as it would allow us to do more rapid development and
innovation around YaST. Also, it would make YaST more accessible to
other projects that might be interested in using or adapting parts of
it for their own purposes. However, it should come as no surprise
that if it does make it into openSUSE 13.1 it may introduce some new
bugs that could prove a pain during installation or for new users.
Nonetheless, I feel that this is certainly the right direction and
will point us towards a promising future of innovation with YaST.
Comments
Post a Comment
Please share your insights, opinions, or questions. In that order preferably :p