Skip Navigation Links
MetaCyber
Setting
History
Organizations
Runners
Fixers
Characters
OriginsExpand Origins
ArchetypesExpand Archetypes
Cool StuffExpand Cool Stuff
Amper
Adept
TuberExpand Tuber
Meta
Scroll up
Scroll down
Tuber Package
Scroll up
Scroll down
Shooter
Boomer
Scrapper
Hacker
Driver
Breaker
Patcher
Facilitator
Scroll up
Scroll down
MetaPowers
BodyTechExpand BodyTech
GearExpand Gear
Scroll up
Scroll down
CyberneticsExpand Cybernetics
BioWare
PharmiTech
Biofeedback
Scroll up
Scroll down
Limbs & Organs
Device Design
Costs & Maintenance
Cybered Existance
Characteristics
Skills
Talents & Perks
Senses
Powers
Scroll up
Scroll down
Guns
Armor
Vehicles
Misc
Scroll up
Scroll down
GM
ParadigmExpand Paradigm
SupplementsExpand Supplements
TechnologyExpand Technology
PacFed
Sample Adventure
NPCs
Run Templates
Updates
Key Notes
Assumptions
Starting
Origins
Professions
Scroll up
Scroll down
Dark Champions
The Ultimate Vehicle
HERO System Vehicle Sourcebook
Gadgets & Gear
Scroll up
Scroll down
The NETExpand The NET
Computer Usage Skill
Computer Programming SkillExpand Computer Programming Skill
Scroll up
Scroll down
History
Mechanics
GM Notes
Scroll up
Scroll down
Languages
Skill Subgroups
Skill Modifiers
Software Development
Computer Hacking
Scroll up
Scroll down
Contact Webmaster
KillerShrike.com
 
Skip Navigation LinksMetaCyber>GM>Technology>Computer Programming Skill>Languages
 
MetaCyber
 
 
Technology

Computer Programming

Languages Skill Subgroups Skill Modifiers Software Development Hacking
 
 
 
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.
COMPUTER LANGUAGES
  • 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+)
COMPUTER LANGUAGE DEFINITION
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.
 
 
Skip Navigation Links
MetaCyberExpand MetaCyber
SettingExpand Setting
CharactersExpand Characters
GMExpand GM
Contact Webmaster
KillerShrike.com
Scroll up
Scroll down
History
Organizations
Runners
Fixers
Scroll up
Scroll down
OriginsExpand Origins
ArchetypesExpand Archetypes
Cool StuffExpand Cool Stuff
Scroll up
Scroll down
Amper
Adept
TuberExpand Tuber
Meta
Scroll up
Scroll down
Tuber Package
Scroll up
Scroll down
Shooter
Boomer
Scrapper
Hacker
Driver
Breaker
Patcher
Facilitator
Scroll up
Scroll down
MetaPowers
BodyTechExpand BodyTech
GearExpand Gear
Scroll up
Scroll down
CyberneticsExpand Cybernetics
BioWare
PharmiTech
Biofeedback
Scroll up
Scroll down