|
|
|
|
|
|
|
|
|
|
|
COMPUTER PROGRAMMING LANGUAGES |
|
There are many different programming, query,
and scripting languages in use in the MetaCyber
setting, that must be purchased separately
as indicated by the adjoining table. A brief
description of each of the languages follows
below. |
- LANGUAGES (bought individually for 1 point)
- Enoch (E) / Enoch Plus (E+)
- Freestyle (FS)
- Logical Design Syntax (LDS)
- Logical Query Syntax (LQS)
- Packet Frameset Router Code (PFRC)
- Pix-it
- Sidewinder (SW)
- VarDim 3.3 (VD3)
- Widget v12 (W12)
- WidgetScript (WScript)
- Wide-zone Switch Operation (WSO)
- Other (Specify)
|
|
|
Hackers in the MetaCyber setting should
know at least one Programming Language at
expert level or higher. |
|
|
ENOCH (E) & ENOCH PLUS (E+) |
|
The term computer language is a more expansive
and alternate term for the more commonly-used
term programming language. It includes a
wide variety of languages used to communicate
with computers and includes query, markup,
and scripting languages, machine / byte
codes, and even configuration files with
special syntaxes. Of particular note in
a MetaCyber campaign are:
|
- PROGRAMMING LANGUAGE: A programming
language is an artificial language that
can be used to control the behavior of a
computer. Programming languages, like human
languages, are defined through the use of
syntactic and semantic rules, to determine
structure and meaning respectively. However
unlike human languages, programming languages
are logic oriented and are intended to allow
the declaration of precise commands that
ultimately can be evaluated and / or executed
by a machine. Programming languages vary
in the their complexity, flexibility, functionality,
design orientation, and difficulty to use,
as well as what they are best used for.
Thus rather than there being one all-purpose
universal programming language, there have
practically always been a plethora of them,
with adherents and detractors. In the MetaCyber
setting there are many different dominant
/ common programming languages currently
in widespread use.
- QUERY LANGUAGE: Query languages are
computer languages used to make queries
into databases and information systems.
Query languages typically focus around mechanisms
to identify data and / or patterns of data
and while it is a gross simplification they
can usually be thought of as filtering mechanisms.
More advanced query languages include syntax
for basic conditional and even procedural
logic, and most query languages provide
various mechanisms to transform and / or
manage data. Of particular note in a MetaCyber
campaign, going after data will most likely
require use of one or more query languages;
the most common query language in use in
the MetaCyber setting is Logical Query Syntax
(LQS).
- SCRIPTING LANGUAGE: A common programming
task is known as scripting, or connecting
/ exercising diverse pre-existing components
to accomplish a new related task. Those
languages which are suited to scripting
are typically called scripting languages.
Many languages for this purpose have common
properties: they favor rapid development
over efficiency of execution; they are normally
implemented with interpreters rather than
compilers; and they are often strong at
communicating with program components written
in other languages. However, scripting languages
are typically specialized and only meaningful
within some larger context. There are many
different kinds of scripting syntaxes. Among
other things, scripting languages are often
used to set up login scripts, which makes
it a subject of interest to hackers. The
most common general scripting languages
in use in the MetaCyber setting are VarDim
Lite (VDL) and WidgetScript (WScript). The
most common script language used for security
and network administration is the special
purpose Enterprise Administration Script
Interpreter (EASI, referred to as "easy
script"); this is treated as "Other Software".
|
|
|
Enoch (E) and its successor Enoch
Plus (E+) have been around for over
two decades, and are ideal for handling
critical, resource intensive processes.
It is widely used for robust applications
of many sorts, and most operating systems
on the market. However it is a very "heavy"
language, relatively slow to develop in,
and has been losing popularity with developers
for many years. While there are some differences,
in general a person that can program in
E can figure things out in E+, and vice
versa as they are about 85% the same.
|
|
Most people only bother to learn it anymore
if they plan to work on legacy systems,
operating systems, or for companies that
are slow to adopt newer technologies. E
is mostly Procedural while E+ is an "interesting"
mix of Procedural and Object Oriented methodologies,
but both rely heavily on common libraries
to achieve most of their efficiencies and
raw processing power; a big difference between
the two is that E+ allows the creation of
new libraries, and the overriding of common
libraries, and E+ has built in hooks to
work with NSDL where as E requires a lot
of hackwork to be compatible with NSDL (which
is often buggy besides). E+ supports semi-interactive
debugging and has many debugging options. |
|
FREESTYLE (FS) |
|
Freestyle (FS) is framework based,
relatively lightweight, and flexible technology
that relies on the use of syntax independent
core functionality interfaced via syntax
"Styles", which are all made to
work together via syntax specific compilers.
Using decompilers it is even possible to
translate code from different syntaxes into
a syntax of choice, making this technology
very easy to use. Styles are available mimicking
the syntaxes and primary features of most
other major programming languages; most
strongly supported are an Enoch Plus Style
called FS-E+, and a Widget v12 Style called
FS-W12.
|
|
Because of this assimilation oriented design
Freestyle is easy for programmers of differing
backgrounds to use collaboratively (though
there are still practical limits), and though
relatively new with only three years on
the market FS has gained a sizeable following.
Which isn't surprising since FS was purposely
designed to "take the best ideas"
from the dominant development platforms
in use when it was created and "leave
the rest in the Disposer", according
to several people involved in the design
team. FS supports very powerful and feature
rich almost fully interactive debugging,
and multiple levels of logging making it
perhaps the easiest of all languages to
debug in. |
|
LOGICAL DESIGN SYNTAX (LDS) |
|
Logical Design Syntax (LDS) is strongly
associated with LQS. However where LQS allows
the analysis and manipulation of data in
a database, LDS allows the creation and
manipulation of the database objects themselves.
However, only higher end database systems
support LDS; lower end products use wizards
or interfaces to accomplish the tasks, hiding
the underlying commands from the user. |
|
|
The LDS standard is more closely complied
with by the systems that use it than LQS
is however, with only very minor difference
across most flavors. LDS has no support
for debugging. |
|
LOGICAL QUERY SYNTAX (LQS) |
|
Logical Query Syntax (LQS) is the
defacto standard for the vast majority of
databases/ Older databases, twenty years
and more, have widely divergent means of
querying against, analyzing, and modifying
data, but practically all modern databases
support some variation of LQS. Though there
are subtly different flavors, and some implementations
support more or less built in functions,
and none of the flavors exactly match the
LQS standard, they are all 80 to 95% the
same so that there is a high degree of knowledge
carry over between them. LQS has no support
for debugging. |
|
PACKET / FRAMESET ROUTER CODE (PFRC) |
|
Packet Frameset Router Code (PFRC)
is used primarily for the configuration
and administration of network "backbone"
hardware. This is not a fully fledged programming
language; it has a limited set of commands
that are supported by network related hardware
in accordance with strict standards. However,
due partially to its terseness, the macro
execution nature of the commands, and sensitivity
to subtle differences arising from specific
sequencing it can be a very tricky
language to actually use. Typically as a
security measure PFRC is not usable remotely
on many critical devices; a person needs
physical access to a device to alter its
code. PFRC is often referred to as "Phreak"
or variations on that theme in the industry.
PFRC has no support for debugging. |
|
PIX-IT |
|
Pix-It is a language whose primary
purpose is the definition of visuals. It
is generally only used to create special
effects and on screen visuals for the entertainment
and media industries, for game design, and
to provide foundations for NSDL Wrappers
to make NEC. Pix-It is a component based
technology oriented around the idea of Rendered
Object Components (ROCs); each individual
object or unit is rendered and compiled
separately to form individual components
that can be instantiated and controlled
by a more traditional code engine. |
|
Most code engines consuming Pix-it ROCs
are written in a sublanguage of Enoch or
Enoch Plus which basically use a stripped
down selection of the common Enoch libraries
plus a couple of Pix-it specific libraries.
These sublanguages are often called P or
P+ in the industry, though these are not
official product names. A character that
knows both Enoch and Pix-It is proficient
with this sublanguage. Pix-It supports
a debugger of a sort, but its not very useful.
|
|
SIDEWINDER (SW) |
|
Sidewinder (SW) is a lightweight
OOP game design language. Its main innovation
is a good selection of basic pre-defined
objects that are useful for relatively simple
games, such as pixel mapping, pathing detection,
random determinations, score keeping methods,
time keeping and hooking, and bots with
extensible behaviors. There are a lot of
limitations on what SW based games can do,
but within those limitations it is possible
to make some fun and decent looking "arcade"
style games relatively quickly.
|
|
The most common outlet for such games is
on Personal Data Assistants, and a pocket
industry exists to produce games for this
market. SW games are too limited to be used
for fully immersive NEC, but they can be
made NET enabled, allowing things like NET
based "face to face" tournaments
similar to chess matches back in the old
days. |
|
There is no practical or business use for
SW games. Sidewinder has no support for
debugging, but it does support verbose error
logging. |
|
VARDIM 3.3 (VD3) |
|
VarDim 3.3 (VD3) is the final iteration
of a popular midweight programming language.
VD 3.3 is a combination of modular Procedural
and psuedo-OOP, and its primary strength
was being designed specifically to allow
rapid application development, with a verbose
and human-friendly syntax and integrated
code helpers. It has NSDL hooks built into
it, and can even generate low to mid quality
NSDL Wrappers for compiled applications
with a built in wizard. The basic syntax
and logic were also externalized into what
was called VarDim Lite (VDL) and used as
a scripting or macro language in many office
applications. |
|
VD 3.3 was innovative for its time, but
since it makes it easy for people without
fully fledged formal computer science educations
to generate applications that are crude
but powerful via wizard code and drop-in
components, it has something of a stigma
associated with it among some "real"
programmers. The shocking permissiveness
of the toolsets and compiler also allow
some very questionable code to be compiled,
which contributes to this stigma as well.
However, despite this stigma it is possible
for a person that knows what they are doing
to write some very good software with VD
3.3. |
|
It primarily competed with Enoch Plus,
relying on its rapidity if development and
a business model using less well compensated
programmers to contend with the more robust
but slower to develop industry juggernaught,
and contributed heavily to the weakening
of Enoch Plus as the premiere development
platform. |
|
Three years ago plans for VD4 were killed,
and instead all of the best features of
VD3 were conflated into Freestyle (FS).
There is a Style for VD3 syntax, but most
of the conveniences of the VD3 toolset that
allowed very lazy coding have been reigned
back and more formal design is enforced.
As a language that has been obsoleted in
the last few years, there is little to no
new development being done with it, but
there are still legacy applications in place.
Support for VDL or something very like it
also continues to live on in many applications,
making it a useful language to be familiar
with at times. VDL has no support for debugging.
VD3 has fully interactive debugging with
adequate but simple debugging tools; however
it's overly permissive compiler allows things
to slip into releases that blow up at run
time. |
|
WIDGET v12 (W12) |
|
Widget v12 (W12) is the current iteration
of an OOP based language with a thirty odd
year history. However, the versioning is
misleading; the only thing v1 and v12 have
in common is the basic idea of being object
oriented. Beyond that, they diverge sharply
in implementation. v11 was a watershed version
for the language, with a heavy shift towards
a more Enoch Plus like syntax, but adapted
towards a "pure" object oriented
approach.
|
|
However v11 was rushed to market to staunch
the loss of share to E+, but was lacking
some key pieces that had been core to the
Widget concept for many years and touched
off bitter complaints among its developer
community. The most notable missing piece
was the built in support of Design Patterns
that many considered to be an integral part
of technology. |
|
In response v12 was released roughly a year
later with the Design Pattern functionality
restored, and some allowances for the older
v10 style syntax to be incorporated or at
least paralleled in the new syntax. After
some hesitancy, v12 was deemed to be solid
by the community, and soon was hyped as
an E+ killer. It was the "hot"
language for about a year, before the release
of Freestyle (FS), which assimilates many
of the best features of W12 and has eaten
into its user base over the last three years.
|
|
W12 still has a reasonable market share,
and most new apps written three to four
years ago were written with W12, making
it a useful language to know. Widget v12
has semi-interactive debugging, solid debug
tools, and almost too much logging. |
|
WIDGETSCRIPT (WScript) |
|
There is also a very sparse scripting language
that has stood the test of time called WidgetScript
(referred to as WScript), modeled after
the syntax and composition of Widget v10
but lacking all the higher order OOP features.
It has been in use for almost a decade and
finds widespread use in all sorts of unexpected
places, from custom utilities, to hacks,
automation software, scheduled tasks, and
as part of internalized scripting support
for software written in the last three versions
of Widget. It is technically a seperate
language (or more accurately a subset) with
its own quirks, but anyone that knows Widget
v10, 11, or 12 can figure it out at need.
The reverse is not necessarily true; a person
that only knows WScript would likely struggle
with the more advanced OOP concepts used
in fully fledged Widget based applications.
The exact game effects, if any, is left
to the GM's determination. |
|
WIDE-ZONE SWITCH OPERATION (WSO) |
|
Wide-zone Switch Operation (WSO)
is, like PFRC, primarily used to configure
network "backbone" hardware and
related devices piggybacking on its standard.
Originally intended purely to handle complex
switching tasks to optimize the flow of
network traffic, its ability to manage communications
in a hyper-efficient fashion made it very
usable for other interconnectivity tasks
and the standard was expanded over the years
to increase this compatibility, but the
name was not changed. It is commonly referred
to as "Wizzo" in the industry,
as are those who are good at using it. |
|
This language is more script-like than PFRC,
and supports some basic conditional programming,
making it more flexible. It's syntax is
also less terse and more easily understood
than PFRC, and WSO supports basic authentication
security, allowing many devices that use
it to support remote administration of some
functionality. WSO has no support for debugging,
but does support explicit logging if a programmer
writes it in. |
|
OTHER PROGRAMMING LANGUAGES |
|
There are many other programming languages
that have been used in the past, and some
lesser or niche languages still being used
in the modern day in the MetaCyber setting.
The GM should feel free to invent such other
languages as they feel will enrich their
campaign, decide what they are used for,
and characters can learn those languages
exactly the same as one of the languages
defined above. Note that proprietary corporate
languages are covered under the broad subgroup
of Proprietary Technology. |
|
|
|
|
|